如何从同一资源中创建多个drawable?

时间:2015-03-06 04:47:27

标签: java android android-canvas android-drawable

在我的Android应用中,我尝试以编程方式创建一个可绘制资源的多种颜色变体。 (对于拼字游戏中的每个字母,我都有一个独特的资源,并且在给定时间内,棋盘上有相同字母拼贴的X个随机数字)

现在我的Draw方法在每个唯一资源上调用相同的id:

int id = context.getResources().getIdentifier(this.tileLetter.toString(), "drawable", mypackagename);

Drawable t = context.getResources().getDrawable(id);
t.setAlpha(num);
t.draw(mycanvasname);

我的问题是,当我尝试在同一个类的不同对象上调用setAlpha时,更改将显示在画布上相同字母的所有切片上。 (再次考虑尝试改变板上一个独特的瓷砖'A'的alpha,而让另一个'A'单独留下来。)

更新 在t.setAlpha(num)之前调用t.mutate()就可以了。

1 个答案:

答案 0 :(得分:0)

如果您创建Drawable的克隆并根据需要修改每个克隆,该怎么办?请参阅Flavio的答案:Android: Cloning a drawable in order to make a StateListDrawable with filters