saveLayer() 创建一个图层
restore()
restoreToCount() 方法将一个图层出栈,
saveLayer() ,saveLayerAlpha() 方法将一个图层入栈
入栈时,后面所用的操作都发生在这个图层上,而出栈时, 则会把图像绘制到上层的Canvas上
canvas.saveLayerAlpha(rectF,100,LAYER_FLAGS); 设置图层透明度
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
paint.setColor(Color.BLUE);
canvas.drawCircle(150,150,60,paint);
canvas.saveLayerAlpha(rectF,100,LAYER_FLAGS); //压栈
paint.setColor(Color.RED);
canvas.drawCircle(200,200,50,paint);//出栈
canvas.restore();
色彩处理
andorid 对于图片的处理,最常用的数据结构是位图 --Bitmap 他包含了一张图片的所有数据,整个图片都是有点阵和颜色值组成
点阵: 就是一个包含像素的矩阵 每一个元素对应的图片有事一个像素
颜色值 ---ARGB :分别对应相应透明度,
一 色彩矩阵分析
色调 物体传播的颜色
饱和度 颜色的纯度 从 0 -100 来进行描述
亮度 颜色的相对明暗程度
在android 中, 系统会使用一个颜色矩阵 ColorMatrix 来处理这些色彩颜色的效果
android 中的颜色矩阵式4X5的数字矩阵
他用颜色色彩进行处理, 而对于每一个像素点, 都有一个颜色分量来保存 ARGB值
在android 中, 4X5的颜色矩阵是以 一段一维 数组的形式来存储 [a,b ,c ,d ,e ,f ,g ,h ,i ,j, k, m ,n ,o ,p ,q, r, s ,t]
则RGBA1就是一个矩阵分量 在处理图像中,使用矩阵乘法运算来处理颜色分量矩阵
矩阵运算的乘法运算公式
4*5的颜色矩阵划分方式
第一个行的 abcde 用来决定新的颜色值 R---红色
第二行的 fghij用来决定新的颜色值 G---绿色
第三行的 kimno用来决定新的颜色值 B----蓝色
第四行的pqrst用来决定性的颜色值 A---透明
变换颜色值的方法
1 改变偏移量
从前面的分析中,只要将第5列的值进行修改即可,即改变颜色的偏移量, 其他的值保存初始矩阵的值