Android绘图应该继承View组件,并重写它的onDraw(Canvas canvas)方法即可。
Canvas提供了一些方法绘制各种图形,Paint代表了Canvas上的画笔,主要用于设置绘制风格,Path代表任意多条直线连接而成的任意图形,Canvas可以根据Path进行绘制出任意的形状。
下面的小例子示范了一些方法的使用。
Activity:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyView(this));
}
}
MyView:
public class MyView extends View {
public MyView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);//把整张画面绘制成白色
Paint paint = new Paint();
paint.setAntiAlias(true);//去锯齿
paint.setColor(Color.BLUE);
//设置填充风格
paint.setStyle(Paint.Style.FILL);
paint.setStrokeWidth(3);
//设置渐变器绘制
//为Paint设置渐变器
Shader mShader = new LinearGradient(0, 0, 40, 60, new int[]{Color.RED,Color.GREEN,Color.BLUE,Color.YELLOW}, null, Shader.TileMode.REPEAT);
paint.setShader(mShader);
//设置阴影
paint.setShadowLayer(45, 10, 10, Color.GRAY);
//定义一个Path对象,封闭成五角星形
Path path1 = new Path();
path1.moveTo(20, 200);
path1.lineTo(470, 200);
path1.lineTo(170,350);
path1.lineTo(235,100);
path1.lineTo(320,350);
path1.close();
//根据Path进行绘制,绘制五角星形
canvas.drawPath(path1, paint);
}
}
绘制图案:
Android的Canvas不仅可以绘制这种简单的几何,还可以直接将一个Bitmap绘制到画布上,这样开发时就更灵活了。