Android Bitmap着色

Android Bitmap着色,第1张

Android 5.0 以上 ImageView 有支持着色的api:

缺点:

1、只有5.0及以上的设备才支持

2、只能着纯色,不能着渐变色

效果:(第一个为原图)

附录:

Shader类源码简析:

Shader类中定义了一个 枚举: enum TileMode{CLAMP, REPEAT, MIRROR};定义了三种渲染图形的模式。

注: 如果图片和目标区域一样大,设置任意模式的效果是一样的。

1. CLAMP: 如果图片小于目标区域,则用该图片的边缘颜色继续填充剩余空间。

2. REPEAT(重复): 如果图片小于目标区域,则复制该图片继续填充剩余空间。

3. MIRROR(镜像): 如果图片小于目标区域,则从图片边缘按和图片上原本颜色相反的颜色来填充剩余空间。

Shader子类解释:Shader的子类全部都没有自己定义的方法,纯粹靠各自的 构造方法 实现效果,所以下面的描述基本只注重于构造方法。所有的Shader子类的使用方法都一样: 给自己的Paint设置这个属性(mPaint.setShader(XXXX)),传入自己建立的Shader,然后使用Canvas画出来即可。注:为了观察清晰起见,我画出的图片和目标区域是一样大的,也就不存在渲染模式的问题了,故渲染模式都采用CLAMP。

附录原文链接: https://blog.csdn.net/ShortChin/article/details/51655082

img.setBackgroundColor(Color.WHITE)//设置ImageView背景为白色

Bitmap除非重绘才能改变背景,png图片改了后缀就不是透明的了

此方法是根据int[] colors色素组创建Bitmap,你可以到这里看一下:http://blog.csdn.net/gaomatrix/article/details/6532468


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7764005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存