Paint
我们在自定义view的时候常常需要自己去绘制一些与众不同的图形,而我们常用paint去绘制,paint是画笔,可以设置绘制风格,如:线宽(粗细)、颜色、透明度、填充风格等, 创建方法如下:
Paint paint = new Paint( );
mPaint.setStyle(Paint.Style.FILL); //设置画笔模式为填充
而canvas则指画布,表现在屏幕上就是一块区域,可以在上面使用各种API绘制想要的东西。
绘制标志
- STROKE //描边
- FILL //填充
- FILL_AND_STROKE //描边加填充
Paint paint = new Paint(); paint.setColor(Color.BLUE); paint.setStrokeWidth(40); //为了实验效果明显,特地设置描边宽度非常大 // 描边 paint.setStyle(Paint.Style.STROKE); canvas.drawCircle(200,200,200,paint); // 填充 paint.setStyle(Paint.Style.FILL); canvas.drawCircle(200,300,200,paint); // 描边加填充 paint.setStyle(Paint.Style.FILL_AND_STROKE); canvas.drawCircle(200, 300, 200, paint);
drawxxx()方法:以一定的坐标值在当前画图区域画图,并且图层会叠加, 即后面绘画的图层会覆盖前面绘画的图层,如:
drawRect(RectF rect, Paint paint) :绘制矩形,
drawPath(Path path, Paint paint) :绘制一个路径,paint ; Path路径对象,
drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) : 贴图(bitmap:Bitmap对象,src:源区域(这里是bitmap), dst:目标区域(应该在canvas的位置和大小),paint:Paint对象,画笔)。
canvas.drawCircle(startX, startY, 100f, paint)// 画圆 canvas.drawRect(startX, startY, startX + 100, startY + 100, paint)//画矩形 canvas.drawArc(rectF, 30f, 180f, true, paint)//画弧形
其他属性
setStrokeWidth(float width) 设置画笔宽度 setAntiAlias(boolean aa) //抗锯齿
总结
因为平时需求会要求使用自定义view,所以把一些常用的属性方法给记录摘录下来,以后加以补充,方便后续的学习进步,canvas是很重要的绘制工具,只有用好它才能更好的去绘制想要的样式,最近甚至还有一些简单的动画也使用了它,所以现在将它理一遍,这样就不会记乱了。