从BitmapDrawable重新转换时,位图无法适应更改

时间:2018-03-30 05:57:24

标签: android bitmap drawable graphic

我有一个从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的相同方法。也许我错过了什么,请帮助。

0 个答案:

没有答案