Android中绘图学习笔记(一)

前言

最近项目中要用到图表,但是现有的开源图表库不能满足我们的要求,所以要去修改它的源码,发现所有的图表库都用的是Canvas去画的,之前没有研究过它的绘制原理,接下来将其学习笔记记录与此

绘图三要素

Paint—————画笔

Bitmap————–画布

Canvas————–画家

它们三个是紧密相连的,缺一不可,不管我们画任何图形,文字,都需要用到它们

如何创建

Bitmap的创建有很多

  1. Bitmap.createBitmap()(Api提供了六种重载)
  2. 使用BitmapFactory获取位图

    Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.ic_launcher);
    

Canvas对象的获取方式有两种:

  1. 一种我们通过重写View.onDraw方法,View中的Canvas对象会被当做参数传递过来,我们操作这个Canvas,效果会直接反应在View中。
  2. 另一种就是当你想创建一个Canvas对象时使用的方法:

    Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);   
    Canvas c = new Canvas(b);
    

    上面代码创建了一个尺寸是100*100的Bitmap,使用它作为Canvas操作的对象,这时候的Canvas就是使用创建的方式

Paint的创建最简单
Paint paint = new Paint(); 关于Paint的属性介绍,可以参考如下地址:http://blog.csdn.net/xanxus46/article/details/7883554

绘图种类

  1. 弧线(arcs)
  2. 填充颜色(argb和color)
  3. Bitmap
  4. 圆(circle和oval)
  5. 点(point)
  6. 线(line)
  7. 矩形(Rect)
  8. 图片(Picture)
  9. 圆角矩形 (RoundRect)
  10. 文本(text)
  11. 顶点(Vertices)
  12. 路径(path)