博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Android] 修改ImageView的图片颜色
阅读量:6262 次
发布时间:2019-06-22

本文共 1185 字,大约阅读时间需要 3 分钟。

有两种方法:

方法1:

ImageView imageView = (ImageView) findViewById(R.id.arrow_image);Drawable tipsArrow = imageView.getDrawable();                    tipsArrow.setColorFilter(mContext.getResources().getColor(R.color.red_bg1), PorterDuff.Mode.SRC_ATOP);imageView.setImageDrawable(tipsArrow);

 

方法2:

ImageView imageView = (ImageView) findViewById(R.id.arrow_image);Bitmap baseBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.img_pop_arrow);Bitmap afterBitmap = Bitmap.createBitmap(baseBitmap.getWidth(), baseBitmap.getHeight(), baseBitmap.getConfig());Canvas canvas = new Canvas(afterBitmap);Paint paint = new Paint();float[] src = new float[]{    0, 0, 0, 0, 253,    0, 0, 0, 0, 54,    0, 0, 0, 0, 102,    0, 0, 0, 1, 0};ColorMatrix colorMatrix = new ColorMatrix();colorMatrix.set(src);paint.setColorFilter(new ColorMatrixColorFilter(src));canvas.drawBitmap(baseBitmap, new Matrix(), paint);imageView.setImageBitmap(afterBitmap);

 

方法1比方法2更加简洁,但会有个问题,如果同个activity里面,有多个ImageView,每个ImageView操作的图片路径都是一样的,那么它们是会互相影响的。

比如,第一个ImageView要将图片设置为绿色,第二个ImageView要将图片设置为红色,那么出来的结果就是有问题,两张都变成绿色了。

 

方法2虽然比方法1复杂,但可以避免以上问题。同时它使用了ColorMatrix,这是个有趣的东西,值得深入研究,这里就不展开说。

 

Have fun with Android!

转载地址:http://wizpa.baihongyu.com/

你可能感兴趣的文章
c#高级编程第七版 学习笔记 第一章 .NET体系结构
查看>>
黄聪:如何高效率存储微信中的 access_token
查看>>
HackerRank The Chosen One [预处理][gcd]
查看>>
封装获取连续数字的拼接
查看>>
gdb调试
查看>>
第一周 从C走进C++ 003 位运算
查看>>
k8s第一个实例创建redis集群服务
查看>>
Postgresql 查看建表语句 命令
查看>>
git操作
查看>>
技术文档翻译-------glove readme(1)
查看>>
编码格式
查看>>
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
查看>>
poj 2828【线段树 单点更新】
查看>>
java构建二叉树和二叉树的遍历
查看>>
svn+jenkins+docker 发布 java 项目(maven)
查看>>
一步一步学NUnit(1)
查看>>
android开发
查看>>
1027 方程组的根
查看>>
菜鸟网络股权分配:阿里巴巴占51%的股份
查看>>
《Pro SQL Server Internals》部分翻译(P36-P45)
查看>>