Android自定义View系列
- Android自定义View注意事项
- Android自定义View之图像的色彩处理
- Android自定义View之Canvas
- Android自定义View之轻松实现圆角和圆形图片
- Android自定义View之双缓冲机制和SurfaceView
- Android自定义View之Window、ViewRootImpl和View的三大流程
- Android自定义View之事件分发机制总结
- Android自定义View之requestLayout方法和invalidate方法
用继承View的方式来自定义View,我们就需要重写onDraw方法,也就是得咱自己来画图了。画图就得用到画笔和画布,也就是Paint和Canvas。我们先来了解下Paint。
Paint
Paint我们可以简单理解为画笔或是PS里的油漆桶,也就是实际上需要设置比如颜色、粗细、字体大小等属性的对象。我们在通过继承View来自定义View时,就是通过设置Paint的属性来控制我们画出来的View的一些特性。
Paint的一些常见API
1.设置文字的对齐方式:setTextAlign()
//设置Paint的文字对齐方式
textPaint = new Paint();
textPaint.setTextAlign(Paint.Align.RIGHT);
...
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
Log.e(TAG, "onDraw");
//文字的起点为(getWidth()/2,getHeight()/2)
canvas.drawText(text, getWidth()/2,getHeight()/2,textPaint);
}
对齐方式有左中右三种
//对齐方式有左中右三种
public enum Align {
/**
* The text is drawn to the right of the x,y origin
*/
LEFT (0),
/**
* The text is drawn centered horizontally on the x,y origin
*/
CENTER (1),
/**
* The text is drawn to the left of the x,y origin
*/
RIGHT (2);
private Align(int nativeInt) {
this.nativeInt = nativeInt;
}
final int nativeInt;
}
需要注意的是,这里的对齐方式指的是和绘制原点的对齐方式,也就是上面canvas.drawText方法中我们设置的绘制起点。比如我们设置的是右对齐,那就是文字的右边和绘制起点对齐,具体效果可以看图