注册

想要进阶高级开发?快看画布的基础使用






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:用来生成椭圆的矩形。

0 个评论

要回复文章请先登录注册