一、绘制2D图形使用四个类
- Canvas:画布类,相当于手机屏幕
- Paint:画笔类,使用相关方法绘制图形
- Rect:矩形类
- RectF:圆角矩形类
二、使用View类的两个方法
- onDraw(Canvas canvas)
用于绘制当前View; - invalidate()
用于通知系统重绘View,也就是重新调用onDraw()方法 - invalidate()必须在UI线程总调用。其他线程要调用postInvalidate(),来通知系统调用回到onDraw()方法;
三、绘图坐标
以手机屏幕的左上角为原点,为x,y轴;
四、绘画步骤:
- 创建一个自定义类继承View;
- 构造方法;
- 重写onDraw()方法,在onDraw()方法中设置画布颜色,画笔颜色
用Paint类进行绘制图形;
4.将该类作为Activity的布局文件中的控件,这样就可以显示在屏幕;
五、重写onDraw(Canvas canvas)
- 重写onDraw(Canvas canvas)方法
- 使用两个类:
画布类:Canvas,Canvas 类为绘制图形的画布,即图形都在画布上绘制;
画笔类:Paint,用于绘制图形; - 设置画布背景颜色:灰色
canvas.drawColor(Color.GRAY);
- 创建画笔:画笔颜色、粗细,决定了图形颜色和图形线条的宽度
Paint paint=new Paint();
paint.setColor(Color.RED);
paint.setAntiAlias(true);//设置抗锯齿
piant.setStrokeWidth(10);//设置画笔粗细
- 画点
canvas.drawPoint(100,30,paint);
- 画线
paint.setColor(Color.YELLOW);
canvas.drawLine(10,50,600,50,paint);
- 画矩形
paint.setStyle(Paint.Style.STROKE);
canvas.drawRect(100,20,30,40,paint);
- 画圆
canvas.drawCircle(50,100,40,paint);
- 画文字
- Paint.Align.CENTER:居中
- Paint.Align.LEFT:居左
- Paint.Align.RIGHT:居右
- measureText(String text)//获取文字的宽度,返回值的单位:像素,text:文本
paint.setTextAlign(Paint.Align.CENTER);
paint.setTextSize(20);
canvas.drawText("PHILISP",50,45,paint);