温故而知新,可以为师矣
Canvas常用API
绘制
drawBitmap(Bitmap bitmap, float left, float top, Paint paint);//在指定坐标绘制位图。
drawLine(float startX, float startY, float stopX, float stopY, Paint paint);//根据指定的起始点和结束点之间绘制连线。
drawPath(Path path, Paint paint);//根据给定的path绘制连线。
drawPoint(float x, float y, Paint paint);//根据给定的坐标绘制点。
drawText(String text, int start, int end, Paint paint);//根据给定的坐标,绘制文字。
变换
translate(float dx, float dy);//平移操作
scale(float sx, float sy);//缩放操作
rotate(float degrees);//旋转操作
skew(float sx, float sy);//倾斜操作
clipxxx(…);//切割操作,参数指定区域内可以继续绘制
clipOutxxx(…);//反向切割操作,参数指定区域以外可以继续绘制
setMatrix(Matrix matrix);//可通过matrix实现平移、缩放、旋转等操作
保存状态、恢复
/**
* 1.canvas内部对于状态的保存存放在栈中
* 2.可以多次调用save保存canvas的状态,并且可以通过getSaveCount方法获取保存的状态个数
* 3.可以通过restore方法返回最近一次save前的状态,也可以通过restoreToCount返回指定save状态。指定save状态之后的状态全部被清除
* 4.saveLayer可以创建新的图层,之后的绘制都会在这个图层之上绘制,直到调用restore方法
* 注意:绘制的坐标系不能超过图层的范围, saveLayerAlpha对图层增加了透明度信息
*/
save();//保存canvas状态,将现在的canvas状态入栈
saveLayer();//
restore();//恢复canvas状态,将栈中最上层的canvas状态出栈。
restoreToCount(int saveCount);//恢复canvas到指定id
getSaveCount();//查看目前栈中保存的状态数量。