我有一个从Bitmap拆分的9位图数组。我尝试做的是将Bitmap
arrayList
更改为Drawable
arrayList
,将porterDuffColorFilter
应用于数组的每个Drawable
然后再将它们转换为Bitmap。当我使用colorFilter
并使用数组中的任何setImageDrawable
时可以看到Drawable
但是当我将setImageBitmap与任何新转换的Bitmap一起使用时,根本没有任何更改。
代码I使用:
private ArrayList<Bitmap> changeColor(ArrayList<Bitmap> smallImages) {
ArrayList<Drawable> arrayList = new ArrayList<>(9);
for(int i=0;i<smallImages.size();i++){
arrayList.add(new BitmapDrawable(getResources(),smallImages.get(i)));
}
for(int i=0;i<arrayList.size();i++){
Drawable d = arrayList.get(i);
d.setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN);
arrayList.set(i,d);
//I've also tried arrayList.get(i).setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN);
}
imageView.setImageDrawable(arrayList.get(4)); //this works great
smallImages.clear();
for(int i=0;i<arrayList.size();i++){
smallImages.add(((BitmapDrawable)arrayList.get(i)).getBitmap());
}
// imageView.setImageBitmap(smallImages.get(4));
// this doesn't work, same as before
return smallImages;
}
我已经搜索了各种方法来使用其他方法转换它,但所有方法都使用BitmapDrawable
的相同方法。也许我错过了什么,请帮助。