Android-Canvas&Drawable
一 Canvas
canvas:画布
用于在屏幕上呈现图形,形象称为画布
二 canvas介绍
常用的类
1 clip:裁剪区域
2 matrix:矩阵
将画布分为许多格子
旋转方法是画布旋转
3 save:保存画布的状态
restore:恢复画布的状态
例如将画布旋转后在画其他的内容,保存后,在恢复,
常用的draw方法:
drawRectl:画矩形
drawCircle:画圆形
drawOval:画椭圆
drawPath:画路径
drawLine:画线条
drawPoint:画点
drawText:画文本
drawColor:设置颜色
drawBitmap:画图片
SufaceView:常用于游戏
图形动态设置方法:
不断刷新图形的帧数。
主线程view:invalidate 会使onDraw方法失效
子线程view:postinvalidate会使onDraw方法失效
三 Drawable介绍
常用的Drawable:
Bitmapdrawable:画图,最常用
Shapedrawable:画背影
Picturedrawable:画图片
Layoutdrawable:画布局
自定义drawable:
定义和实现drawable的方法:
1 用资源文件中的图片:
支持的图片有png(推荐), jpg(可以接受), gif(不推荐)
getResource()方法获取drawable文件夹内的资源
2 从xml文件中生成
在drawable文件夹中定义xml文件,在Activity中定义布局并获取xml资源
3 编码自定义构造
自定义一个view类继承自drawable类,重写父类的方法
四 nine-Patch
1 定义:9-patch是一个标准的png图像, 它包括二外的一个像素的边界,后缀名必须为.0.png.
并且保存在工程的res/drawable目录下。如果从apk文件中解压得到的*.9.png,
注意它是已将走位的空包像素去掉的,在使用时必须加上
2 区域
左线和上线:控制拉伸区域
右线和下线:内容控制区域
3 使用
工具:draw9patch.bat在sdk下的tool目录下
按下鼠标左键,选中
shift+鼠标左键,取消选中
选中后会有黑线表示
做好的9-patch如下图: