想要进阶高级开发?快看画布的基础使用
1.设置画布的背景颜色
void drawColor(int color)
void drawARGB(int a, int r, int g, int b)
void drawRGB(int r, int g, int b)
2.画圆形
//画笔
Paint paint=new Paint() ;
paint.setColor(OxFFFFOOOO );
paint.setStyle(Paint.Style.FILLANDSTROKE);
paint.setStrokeWidth(50);
//画布(画圆形)
canvas.drawCircle(l90, 200, 150, paint);
基本语法
void drawCircle (float cx, float cy, float radius, Paint paint)
参数说明
cx:圆心的x坐标。
cy:圆心的y坐标。
radius:圆的半径。
paint:绘制时所使用的画笔。
3.画直线
单条直线:
//画笔
Paint paint=new Paint() ;
paint.setColor(OxFFFFOOOO );
paint.setStrokeWidth(50);
//画布(画直线)
canvas.drawLine(100, 100, 200, 200, paint);
基本语法
void drawLine (float startX, float startY, float stopX, float stopY , Paint paint)
参数说明
startX:起始点 坐标。
startY:起始点 坐标
stopX:终点 坐标。
stopY:终点 坐标。
paint:绘制时所使用的画笔。
多条直线:
Paint paint = new Paint();
paint.setColor(color.RED);
paint.setStrokeWidth(5);
float []pts={10,10,100, 100, 200, 200,400,400};
canvas.drawLines(pts, 2,4,paint); //表示从pts 数组中索引为2的数字开始绘图,有4个数值参与绘图,也就是点(100,100)和(200,200),所以效果图就是这两个点的连线。
基本语法
void drawLines(float[] pts,Paint paint)
void drawLines(float [ ] pts,int offset, int count,Paint paint)
参数说明
pts:点的集合,pts的组织方式为{x1,y1,x2,y2,x3,y3,…}。
offset:集合中跳过的数值个数。注意不是点的个数!一个点有两个数值。
count:参与绘制的数值个数,指pts数组中数值的个数,而不是点的个数,因为一个点有两个数值。
paint:绘制时所使用的画笔。
4.画点
单个点
//画笔
Paint paint=new Paint() ;
paint.setColor(OxFFFFOOOO );
paint.setStrokeWidth(50);
//画布(画点)
canvas.drawPoint(100, 100, paint);
基本语法
void drawPoint(float x, float y, Paint paint)
参数说明
x:点的X坐标。
y:点的Y坐标。
paint:绘制时所使用的画笔。
多个点
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStrokeWidth(25);
float[] pts = {10,10,100,100,200,200,400,400};
canvas.drawPoints(pts, 2, 4, paint); //4个点:(10,10)、(100,100)、(200,200)和(400,400),在 drawPoints()函数里跳过前两个数值,即第一个点的横、纵坐标,画出后面4个数值代表的点,即第二、三个点,第四个点没画。
基本语法
void drawPoints (float [] pts,Paint paint)
void drawPoints(float[ ] pts,int offset,int count,Paint paint)
参数说明
pts:点的合集,与上面的直线一致,样式为{x1,y1,x2,y2,x3,y3,…}。
offset:集合中跳过的数值个数。注意不是点的个数!一个点有两个数值。
count:参与绘制的数值个数,指pts数组中数值的个数,而不是点的个数。
paint:绘制时所使用的画笔。
5.画矩形
区别:
RectF 所保存的数值类型是 float 类型
Rect 所保存的数值类型是 int 类型
构造矩形的两种方法:
//方法一 直接构造
Rect rect = new Rect(10, 10, 100, 100);
//方法二 间接构造
Rect rect = new Rect();
rect.set(10, 10, 100, 100);
绘制矩形:
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(15);
//直接构造
canvas.drawRect(10, 10, 100, 100, paint);
//使用 RectF 构造
RectF rect = new RectF(210f, 10f, 300f, 100f);
canvas.drawRect(rect, paint);
6.画圆角矩形
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Style.FILL);
paint.setStrokeWidth(15);
RectF rect = new RectF(100,10,300,100);
canvas.drawRoundRect(rect,20,10, paint);
基本语法
void drawRoundRect (RectF rect, float rx, float ry,Paint paint)
参数说明
rect:要绘制的矩形。
rx:生成圆角的椭圆的X轴半径。
ry:生成圆角的椭圆的Y轴半径。
paint:绘制时所使用的画笔。
7.画椭圆
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(5);
RectF rect = new RectF(100,10,300,100);
canvas.drawRect(rect, paint);
canvas.drawOval(rect, paint);//根据同一个矩形画椭圆
基本语法
void drawOval(RectF oval, Paint paint)
参数说明
oval:用来生成椭圆的矩形。