自定义View(一)---Paint
来源:互联网 发布:打谱软件手机版 编辑:程序博客网 时间:2024/05/22 04:26
一、Paint简单的理解是画笔,油漆。而 Paint 接口定义如何为 Graphics2D 操作生成颜色模式。将实现 Paint 接口的类添加到 Graphics2D 上下文中,以便定义 draw 和 fill 方法所使用的颜色模式。
Pain类的常用属性设置方法如下:
setAntiAlias(); //设置画笔的抗锯齿效果
setColor(); //设置画笔的颜色
setARGB(); //设置画笔的A、R、G、B值
setAlpha(); //设置画笔的Alpha值,取值0~255
setTextSize(); //设置字体的尺寸
setStyle(); //设置画笔的风格(空心或实心)
setStrokeWidth(); //设置空心边框的宽度
setDither:设定图像是否使用抖动处理,会使绘制出来的图片 颜色更加平滑,饱满,图像更加清晰。
setFakeBoldText:设置为粗体文本。
setFilterBitmap:对位图进行滤波处理。//参考滤波算法
setHinting:API LEVEL 14:设置暗模式,HINTING_OFF, HINTING_ON
setLetterSpacing:API LEVEL 21:设置文本间距,默认为0,负 数为收紧文本。
setLinearText:设置线性文本
getColor(); //获取画笔的颜色
二、ColorMatrix(颜色矩阵) setColorMatrix
ColorMatrix 有三个子类
1、ColorMatrixColorFilter
对图像进行颜色方面的处理。ColorMatrix是一个5*4的矩阵。如图所示,在android中,是以以为数组的方式存储的n = {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t}的方式进行存储。
ColorMatrix colorMatrix = new ColorMatrix(new float[]{ //没一行前4列系数的取值范围为:0.0~2.0, //第5列的取值范围为0~255 0.5f, 0, 0, 0, 0,//R 0, 0.5f, 0, 0, 0,//G 0, 0, 0.5f, 0, 0,//B 0, 0, 0, 1, 0//A }); paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
PS:每一行前4列系数的取值范围为0.0~2.0
第五列的取值范围为0~255
在一张图片中,图像的RGBA(红色、绿色、蓝色、透明度)值决定了该图片所呈现出来的颜色效果。
而图像的RGBA值则存储在一个5*1的颜色分量矩阵C中,由颜色分量矩阵C可以控制图像的颜色效果。
C = [R
G
B
1]
要想改变一张图片的颜色效果,只需要改变图像的颜色分量矩阵或者改变颜色矩阵即可。
2、LightingColorFilter
顾名思义光照颜色过滤,这肯定是跟光照是有关的了。该类有且只有一个构造方法:
参数1:mul全称ColorMultiply,意思为色彩倍增。
参数2:add全称ColorAdd,意思为色彩的添加
这两个值都是16进制的色彩0xAARRGGBB
paint.setColorFilter(new LightingColorFilter(0xFFFF00FF, 0x00000000));
3、PorterDuffColorFilter
PorterDuffColorFilter跟LightingColorFilter一样,只有一个构造方法:
参数1:16进制的颜色值
参数2:Mode混合模式,PorterDuff内部类Mode中的一个常量值,这个值表示混合模式。
PorterDuffColorFilter(int color, PorterDuff.Mode mode)
- 自定义View(一)---Paint
- Android自定义View工具:Paint&Canvas(一)
- 自定义View之Paint
- 自定义View之Paint
- 自定义View之Paint
- 自定义View之Paint
- 自定义View之Paint
- 自定义View之Paint
- 自定义View之Paint
- 自定义View之Paint
- 自定义View之Paint
- 自定义View之Paint
- 自定义View之Paint
- Android 自定义View(一) Paint、Rect、Canvas介绍
- 自定义view 系列一 paint canvas path简单使用
- 自定义View-Paint和Canvas
- 【Paint】Android 自定义View之Paint篇(更新中...)
- 自定义View(二)--Paint-Paint的setMaskFilter属性
- 《算法》第一章——Dijkstra双栈表达式求值
- 第十周项目2---二叉树遍历的递归算法
- lightoj 1066 - Gathering Food
- 实用 .htaccess 用法大全
- NYOJ 218 Dinner
- 自定义View(一)---Paint
- sql语言分类
- 七牛Android SDK 上传功能整理
- 字符编码Unicode和UTF-8
- 向量的数量积,向量积,混合积及应用
- idea报错:[2016-08-31 09:20:10,763] Artifact xxx:war exploded: Error during artifact deployment.
- Django 使用多个视图前缀
- 不同磁道的扇区数是否相同? 知乎
- 屏幕适配