Adnroid canvas

来源:互联网 发布:中国的网络环境 编辑:程序博客网 时间:2024/06/05 14:30

android 通过view  通过 onDraw() 方法  canvas 进行绘制


1 canvas : 画布


2 可以进行 图形、文字、图片绘制


3 canvas 有 translate 、rotate 等 改变画布的方法,通过这些方法改变画布,实现改变绘制的目的(画出一个刻度,画布旋转角度 (canvas 的 rotate 方法)后,那么这个刻度随

画布旋转,循环实现,可以实现 表盘等 圆形 刻度 图形


4 save() restore() 方法,,,,sava()方法 保存画布状态,,执行此方法后,,状态保存,执行restore ,则画布回到保存的状态(通常结合使用,,例如旋转 30 度,,保存,,再 旋转 30 度,那么此时相当于 旋转60度,,执行 restore() 后,回到旋转 30 度状态,,此时旋转 30度,,那么相当于 还是 旋转了60 度)


5  invalidate();    在主线程 调用,实现view 刷新,,onDraw执行    postInvalidate(); 可以在主线程 也可以在 子线程中执行,属性view,  


6 对于view  

getIntrinsicWidth()  获取 原始资源(图片宽度)  getWidth(获取view控件)
自定义imageview  getwidth() 获取view宽度,  getDrawable.getIntrinsicWidth() 获取布局中设置图片的原始宽度
7 对于Imageview 的ScaleType  的 matrix 类型,需要设置一个矩阵,在自定义Imageview 的常用
8 关于抗锯齿   绘制过程中曲线、斜线等出现锯齿
对于线条文字 paint.setAntiAlias(true);   
对于图片 线条 canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG));
PaintFlagsDrawFilter  专用于此