【android】自定义控件基础第一篇

想要画出自定义控件需要画笔(Paint)和画布(Canvas)

一.Paint基础使用

//是否抗锯齿
void setAntiAlias(boolean aa)
//设置颜色
void setColor(int color)
//设置样式
void setStyle(Paint.Style style)
  • Paint.Style.FILL:仅填充内部
  • Paint.Style.STROKE:仅描边
  • Paint.Style.FILL_AND_STROKE:填充内部与描边
//设置宽度
void setStrokeWidth(float width)

举例:

 Paint paint = new Paint();
 paint.setAntiAlias(true);
 paint.setColor(Color.RED);
 paint.setStyle(Paint.Style.FILL_AND_STROKE);
 paint.setStrokeWidth(50);

二.Canvas基础使用

1.画直线

void drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
  • startX:起点X坐标
  • startY:起点Y坐标
  • stopX:终点X坐标
  • stopY:终点Y坐标

2.画多条直线

//第一种方法
void drawLines(float[] pts, Paint paint)

举例

float[] pts={10,10,100,100,200,200,400,400};
canvas.drawLines(pts,paint);

上面有4个点,分别是{10,10} {100,100} {200,200} {400,400}两两连成一条直线,共有两条直线。

//第二种方法
void drawLines(float[] pts, int offset, int count, Paint paint)
  • offset:跳过数值个数
  • count:参与绘制个数

3.点

void drawPoint(float x, float y, Paint paint)

4.多个点

void drawPoints(float[] pts, Paint paint)
void drawPoints(float[] pts, int offset, int count, Paint paint)

使用方法与上文画线一致。

5.矩形工具Rect,RectF

Rect与RectF的构造方法基本一致。有直接构造或间接构造。

 //直接构造
 RectF rectF = new RectF(10, 100, 200, 400);
 //间接构造
 RectF rectF = new RectF();
 rectF.set(10,100,200,400);

矩形的绘制方法

void drawRect(RectF rect, Paint paint)

void drawRect(Rect r, Paint paint)

6.圆角矩形

void drawRoundRect(RectF rect, float rx, float ry, Paint paint)
  • rx:圆角的X轴半径
  • ry:圆角的Y轴半径

7.圆形

void drawCircle(float cx, float cy, float radius, Paint paint)
  • cx:圆心点的X轴半径
  • cy:圆心点的Y轴半径
  • radius:圆的半径

8.椭圆

void drawOval(RectF oval, Paint paint) 

9.弧

void drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)
  • startAngle:弧开始的角度
  • sweepAngle:弧持续的角度
  • useCenter:是否有弧的两边
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值