在我正在开发的一个应用程序中,我试图以编程方式创建一个ImageButton
,它是所选ImageButton
的副本,但图像以不同的方式着色,比方说红色。暂时更改可绘制颜色
如果我使用PowerDuff.Mode.MULTIPLY
:
clonebutton.getDrawable().setColorFilter(0xFFFF0000,Mode.MULTIPLY);
然后连原来ImageButton
改变其颜色为红色,因为它们共享相同的drawable
。有没有办法在不使用两个不同的drawables
的情况下将过滤器应用于clonebutton?例如,是否可以通过某种方式在clonebutton顶部放置着色层而不编辑drawable
?
更新 我设置为绘制可变:
Drawable d = swipebutton.getDrawable();
d.mutate();
d.setColorFilter(0xFFFF0000,Mode.MULTIPLY);
swipebutton.setImageDrawable(d);
这可以防止我clonebutton分享其drawable
的状态通知给其他views
。
这个共同和可缩放的绘图工作,完美无瑕! – Vektor88
答案来得太快,以至于我在那个时候无法接受它,因为我的声望很低,但这绝对有效! – Vektor88
:)........不用担心 – Triode