9
Android是否维护应用程序可绘制资源的内存缓存并重用它们,或者预先加载可动态分配给不同窗口小部件的所有drawable是一个好习惯?是否有任何理由从资源预加载drawables?
例如:
public static final int[] SETS = {
R.drawable.set0, R.drawable.set1, R.drawable.set2,
R.drawable.set3, R.drawable.set4, R.drawable.set5, R.drawable.set6,
R.drawable.set7, R.drawable.set8, R.drawable.set9, R.drawable.set10};
public Drawable[] sets;
void init() {
load(sets, SETS);
}
public void load(Drawable[] d, int[] ids) {
for (int i = 0; i < ids.length; i++) {
if (ids[i] == 0)
d[i] = null;
else
d[i] = context.getResources().getDrawable(ids[i]);
}
}
有没有什么办法可以关闭缓存?我正在多次获取单个drawable并更改其阴影。他们都结束了相同的色彩。非常令人沮丧。 – astryk 2014-07-15 20:05:56
这就是为什么在drawables上有mutate()... – headsvk 2015-11-23 13:19:49