1.1 基本图形绘制
setColor
:
首先0xAARRGGBB就是指透明度、红、绿、蓝四种属性的程度,十六进制从00->FF。即0到255,0是完全透明,255是全部着色,比如0xFFFF0000,就是纯红色,而0xFF0F0000就会显示弱红色。
1.2 Region
Region故名思意就是一块封闭的区域。
来看一下Region的构造变量:
public Region(Region region)
public Region(Rect r)
public Region(int left,int top,int right,int bottom)
第一个构造函数通过其他Region来复制一个同样的Region变量。
第二、三个构造函数才是常用的,根据一个矩形或者矩形左上角and右下角来构造出一个矩形区域。
我们在View中构造一个Region,
例:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
Region region = new Region(new Rect(50,50,200,100));
//canvas.drawRegion(region);
}
我们用Region构造出一个矩形区域,但是在canvas中并没有对应的drawRegion方法,也就是说canvas并不能直接draw出一个Region,所以我们自己定义一个drawRegion方法出来。
public void drawRegion(Canvas canvas,Region region,Paint paint){
RegionIterator iter = new RegionIterator(region);
Rect r = new Rect();
while(iter.next®){
canvas.drawRect(r,paint);
}
}
效果如下:
从效果来看,我们用Region写了这么多,还不如直接用drawRect(50,50,200,100)更好呢!
从这里也可以看出,R