绘图
建议看启舰大神的系列博客,或者《android-自定义控件》,
在android的世界里面,你所看到的所有控件本质上都是通过逻辑概念绘画给“画”上去的,比如一张图片,也是“画”上去的,而我们看到如此多的动态效果其实是在每一帧绘制不同的图像,包装下形成动画,就是这么而来的。
基本而言我们所能用到的有这么几个逻辑概念:
- Paint 英文词汇是绘画,是个动词,在这里我们可以理解为画笔画画这套动作,或者直接理解为画笔来表述好一点,它所能的就是“我该以什么方式来画”
- Canvas 画布,我们所画的东西是画在画布上,然后通过画布进而映射到屏幕上。“我可以承载画画的内容”
- Path 路径,点于点之间的连线
- Rect 矩形
- Bitmap位图
所以最基本动作就是
- 准备画笔
- 准备要画的内容
- 在画布上画画
画笔
The Paint class holds the style and color information about how to draw* geometries, text and bitmaps.
画笔类承载着关于如何取绘画的颜色风格。
绘制之前,我们需要了解,画笔有那些可以做的
1 | mPaint = new Paint(); |
额,可以设置东西非常多,还是建议看启舰大神的书。
坐标
首先需要介绍下android的坐标系,它是以画布左上角为圆点,向下为正坐标,向右为正坐标。
1 | ------------- |
基本图形绘制
画笔设置到了后就可以画画了
绘制图形,线,弧,点
绘点的好理解,给出一个坐标就行了
绘制线的画就是给出若干个点
绘制矩形就是给出矩形四条边距离坐标轴的距离
绘制椭圆,高中的学习我们直到,一个椭圆是建立一个矩形中的,所以我们需要给出矩形,当然如果矩形变成正方形后,自然就成为圆了。
如果单纯画圆的画就需要给出圆心坐标,以及半径
绘制弧的的画就要给具体的角度了。android的角度轴是以x正方向为0,顺时针针增加。
1 | canvas.drawLines(pts, mPaint);//线 |
通过画出这些基本图形,结合动画也就能做出不错的效果了