这是第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 两篇不错的文章.

  1. drawBitmap 在画布上绘制一个位图。参数众多.
  2. drawARGB / drawRGB / drawColor 使用单一的颜色填充画布, 有清屏的作用.
  3. drawPaint 使用指定的Paint填充整个Canvas.
  4. drawPath 绘制指定的Path。Path对象经常用来保存一个对象中基本图形的集合。
  5. drawLine(s) 在两个点之间画一条(多条)直线。
  6. drawArc 在一个矩形区域的两个角之间绘制一个弧。
  7. drawText 在Canvas上绘制一个文本串。文本的字体、大小和渲染属性都设置在用来渲染文本的Paint对象中。
  8. drawPosText 绘制指定了每一个字符的偏移量的文本字符串。
  9. drawTextOnPath 在一个指定的path上绘制文本。
  10. drawRect 绘制一个矩形。
  11. drawRoundRect 绘制一个圆角矩形。
  12. drawCircle 以给定的点为圆心,绘制一个指定半径的圆。
  13. drawOval 以指定的矩形为边界,画一个椭圆。
  14. save 保存当前的matrix 和 clip 到私有栈中, 返回一个栈中的 int标识.
  15. save(int saveFlags) 效果同上, 参数saveFlags 有3个选择, MATRIX_SAVE_FLAG, CLIP_SAVE_FLAG, ALL_SAVE_FLAG, 指定是保存matrix 或 clip 状态, 还是两者都保存.
  16. restore 从私有栈弹出最后一次save() 保存的东西, 如果私有栈中无东西, 将产生错误.
  17. restoreToCount(int saveCount) 通过save()返回的 int标识, 从私有栈中获取对应save() 保存的东西, 该栈位置到栈顶的东西将被弹出.
  18. save 和 restore, 简单来讲, 当有平移或变形等操作发生时, 保存当前画布, 再进行平移或变形的操作, 再取回原先保存的画布. 这样的画布就不会受到中间的平移或变形等操作的影响了.

这些绘图方法中的每一个都需要指定一个Paint对象来渲染它。

以上大部分借鉴了书<Android 高级编程> 的11.4.3 高级画布绘图.

  • Canvas 的构造函数
  1. Canvas()
  2. Canvas(Bitmap bitmap) , @param bitmap Specifies a mutable bitmap for the canvas to draw into.
  3. Canvas(int nativeCanvas) , nativeCanvas 不能为0, 官方没有注释, 看起来是一个资源句柄, 指定了我们将使用的 Canvas资源. mNativeCanvas = nativeCanvas; mNativeCanvas 变量在各种 native 画图方法中是必不可少的参数.
  4. Canvas(javax.microedition.khronos.opengles.GL gl) , 和第二个不兼容.
  • Bitmap 位图,

Android 画图之Bitmap(一) , Android 画图之Bitmap(二)

以上是chroya 两篇不错的文章.

以后慢慢整理..

更多相关文章

  1. Android自定义SeekBar样式,遇到的进度条高度问题
  2. Android(安卓)OpenGL ES 开发(二): OpenGL ES 环境搭建
  3. Android(安卓)JNI学习笔记(三)-编译文件Android.mk、Application.mk
  4. Android系统使用global key 一键启动指定APP或者打开WiFi/蓝牙等
  5. (ios实现)用c/c++混合编程方式为ios/android实现一个自绘日期选
  6. Android(安卓)调用系统相机拍照并获取图片
  7. Android(安卓)5.0新特性之Material Design
  8. 一起学android之如何获取手机程序列表以及程序相关信息并启动指
  9. android 屏幕录像

随机推荐

  1. Centos怎么用parted分区超过2TB硬盘
  2. 使用Android模拟器调试linux内核
  3. Find常用语法
  4. 用原生 JavaScript 实现十大 jQuery 函数
  5. 怎样通过读源码提高你的 JavaScript 知识
  6. Mount挂载
  7. 用纯 JavaScript 撸一个 MVC 框架[每日前
  8. Node.js 12中的ES模块[每日前端夜话0x9E]
  9. 那些最受欢迎的 Node.js 视图引擎[每日前
  10. 人生第一次写博客,就先当作日记写了