自定义过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那么开始到圆心,和结束点到圆心都有连线.反之没有.