这是第100篇个人原创的博文(不包括翻译的), 快4年了! 个人还是原地踏步!
- Canvas 画布, 这是一个重要的类, 页面显示都是通过其对象来完成的.竟然除了 android.graphics.Canvas.java 外, android 还有一个类名字也是 Canvas 的, 感觉这个类还强大点. 晕!
/**
* The Canvas class holds the "draw" calls. To draw something, you need
* 4 basic components:
A Bitmap to hold the pixels,
a Canvas to host the draw calls (writing into the bitmap),
a drawing primitive (e.g. Rect, Path, text, Bitmap),
and a paint (to describe the colors and styles for thedrawing).
*/
Android 画图之Matrix(一) , Android 画图之Matrix(二)
以上是chroya 两篇不错的文章.
- drawBitmap 在画布上绘制一个位图。参数众多.
- drawARGB / drawRGB / drawColor 使用单一的颜色填充画布, 有清屏的作用.
- drawPaint 使用指定的Paint填充整个Canvas.
- drawPath 绘制指定的Path。Path对象经常用来保存一个对象中基本图形的集合。
- drawLine(s) 在两个点之间画一条(多条)直线。
- drawArc 在一个矩形区域的两个角之间绘制一个弧。
- drawText 在Canvas上绘制一个文本串。文本的字体、大小和渲染属性都设置在用来渲染文本的Paint对象中。
- drawPosText 绘制指定了每一个字符的偏移量的文本字符串。
- drawTextOnPath 在一个指定的path上绘制文本。
- drawRect 绘制一个矩形。
- drawRoundRect 绘制一个圆角矩形。
- drawCircle 以给定的点为圆心,绘制一个指定半径的圆。
- drawOval 以指定的矩形为边界,画一个椭圆。
- save 保存当前的matrix 和 clip 到私有栈中, 返回一个栈中的 int标识.
- save(int saveFlags) 效果同上, 参数saveFlags 有3个选择, MATRIX_SAVE_FLAG, CLIP_SAVE_FLAG, ALL_SAVE_FLAG, 指定是保存matrix 或 clip 状态, 还是两者都保存.
- restore 从私有栈弹出最后一次save() 保存的东西, 如果私有栈中无东西, 将产生错误.
- restoreToCount(int saveCount) 通过save()返回的 int标识, 从私有栈中获取对应save() 保存的东西, 该栈位置到栈顶的东西将被弹出.
- save 和 restore, 简单来讲, 当有平移或变形等操作发生时, 保存当前画布, 再进行平移或变形的操作, 再取回原先保存的画布. 这样的画布就不会受到中间的平移或变形等操作的影响了.
这些绘图方法中的每一个都需要指定一个Paint对象来渲染它。
以上大部分借鉴了书<Android 高级编程> 的11.4.3 高级画布绘图.
- Canvas 的构造函数
- Canvas()
- Canvas(Bitmap bitmap) , @param bitmap Specifies a mutable bitmap for the canvas to draw into.
- Canvas(int nativeCanvas) , nativeCanvas 不能为0, 官方没有注释, 看起来是一个资源句柄, 指定了我们将使用的 Canvas资源. mNativeCanvas = nativeCanvas; mNativeCanvas 变量在各种 native 画图方法中是必不可少的参数.
- Canvas(javax.microedition.khronos.opengles.GL gl) , 和第二个不兼容.
- Bitmap 位图,
Android 画图之Bitmap(一) , Android 画图之Bitmap(二)
以上是chroya 两篇不错的文章.
以后慢慢整理..