释放双眼,带上耳机,听听看~!
昨天,我做一个照片墙,需要当用户没有选择图片删除时,删除图标变暗且不可点击,选中了图片后删除图标变亮。查了一些资料,终于做出来了。
1.新建一个Drawable的 全局变量
private Drawable drawable;
2.获取需要变暗的图标
drawable = getResources().getDrawable(R.drawable.alarm_empty);
3.变暗时调用两行代码
drawable.setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);
delImageView.setBackgroundDrawable(drawable);
4.需要变量时调用两行代码
drawable.setColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY);
delImageView.setBackgroundDrawable(drawable);
在网上查了资料,PorterDuff.Mode.MULTIPLY的含义。
MULTIPLY
[Sa * Da, Sc * Dc],正片叠底,即查看每个通道中的颜色信息,并将基色与混合色复合。结果色总是较暗的颜色,任何颜色与黑色复合产生黑色,任何颜色与白色复合保持不变,当用黑色或白色以外的颜色绘画时,绘画工具绘制的连续描边产生逐渐变暗的颜色。
其实就是两图层交集部分叠加后颜色,当灰色与图片叠加后,图片就变暗了。与白色叠加后,恢复原图。就是这样简单。