自定义过View的对这两个属性应该不陌生. Paint画笔
, Canvas画布
. 有了这两个条件我们就可以做很多的事情.
如果你想设置一些属性如文字粗细,大小,颜色那么就使用Paint.
Paint:该类保存了绘制几何图形、文本和位图的样式和颜色信息。也就是说我们可以使用Paint保存的样式和颜色,来绘制图形、文本和bitmap,这就是Paint的强大之处。接下来我们使用Paint来绘图,并且看看该类有哪些样式和颜色。
当我们要自定义View的使用,要养成在构造函数
中创建出了Paint画笔对象,而不是在onDraw()
,因为onDraw可能会在后续中频繁的刷新,如果在这其中设置了一些初始化的操作,那么就毫无意义并且浪费资源.
我们看一个Paint的基本属性设置:
mPaint =
new
Paint(); //使用paint前要对paint初始化
//开始设置画笔的基本信息 mPaint.setAntiAlias(true); //设置画笔的抗锯齿 mPaint.setColor(Color.WHITE); //设置画笔的颜色 mPaint.setStyle(Paint.Style.FILL); //设置画出的图形填充的类型,fill为内部填充,stroke为只有边框,内容不填充 mPaint.setStrokeWidth(mDensity * 2); //设置画笔的宽度. 接收实参为像素单位 mPaint.setTextSize(mDensity * 20); //设置当绘制文字的时候的字体大小
mPaint.setStrokeCap(Paint.Cap.SQUARE);
//设置线帽,ROUND:圆形,SQUARE:方形
setStyle (Paint.Style style)
- Paint.Style.FILL 填充内部
- Paint.Style.FILL_AND_STROKE 填充并描边
- Paint.Style.STROKE 仅描边不填充
如果你想直接画某一个图形那么就是用Canvas
Canvas类:该类规定了背景的颜色,以及绘制的形状
drawLine (float startX, float startY, float stopX, float stopY, Paint paint)//画直线 //startX:开始点X坐标 //startY:开始点Y坐标 //stopX:结束点X坐标 //stopY:结束点Y坐标 drawPoint (float x, float y, Paint paint)//画点 drawRect (float left, float top, float right, float bottom, Paint paint)//画矩形 drawRoundRect (RectF rect, float rx, float ry, Paint paint)//画圆角矩形 //rx: 生成圆角椭圆的X轴的半径 //ry: 生成圆角椭圆的Y轴的半径 drawCircle (float cx, float cy, float radius, Paint paint)//画圆形 //cx: 圆心x点坐标 //cy: 圆心y点坐标 //radius: 圆的半径 drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)//画弧 //startAngle: 起始点,默认为坐标系x轴的正方向为0, 正值为顺时针旋转,负值反之 //sweepAngle: 从起始点开始需要显示的多少角度到结束点. 此角度正值为顺时针旋转. //useCenter: 是一个boolean,如果为true那么开始到圆心,和结束点到圆心都有连线.反之没有.