在我正在开发的一个应用程序中,我试图以编程方式创建一个ImageButton
selected 的副本ImageButton
,但图像以不同的方式着色,比如说红色。
如果我使用PowerDuff.Mode.MULTIPLY
:
clonebutton.getDrawable().setColorFilter(0xFFFF0000,Mode.MULTIPLY);
然后即使是原件也ImageButton
将其颜色变为红色,因为它们共享相同的drawable
. 有没有办法只在 clonebutton 上应用过滤器而不使用两个不同的drawables
?例如,是否可以在不编辑的情况下以某种方式在 clonebutton 顶部放置一个着色层drawable
?
更新 我将drawable设置为可变:
Drawable d = swipebutton.getDrawable();
d.mutate();
d.setColorFilter(0xFFFF0000,Mode.MULTIPLY);
swipebutton.setImageDrawable(d);
这可以防止我的 clonebutton 将其状态共享drawable
给其他views
.