KitKatで無作為に生成された色でListViewを作成しようとしています。
問題:異なるアイテムには同じ色しか表示されません。KitKatでランダムな色のListViewアイテムを作成するには
Drawable d = getResources().getDrawable(R.drawable.main_item_image_background);
int r = (int) (Math.random() * 256);
int g = (int) (Math.random() * 256);
int b = (int) (Math.random() * 256);
int randColor = Color.argb(255, r, g, b);
d.setColorFilter(new PorterDuffColorFilter(randColor, PorterDuff.Mode.SRC_IN));
viewHolder.ivLogoBackground.setImageDrawable(d);
は、私はまた、このようにそれを実行しようとしました:
Random rand = new Random();
int r = rand.nextInt(256);
int g = rand.nextInt(256);
int b = rand.nextInt(256);
それはロリポップ以上にうまく動作しますが、キットカットの上に、それは項目ごとに同じ色を示し
は、ここに私のコードです。 私はこの問題はd.setColorFilter(new PorterDuffColorFilter(randColor, PorterDuff.Mode.SRC_IN));
アンドロイドMであることを考える:
Androidのキットカット:
ソリューション:Drawable
はmutate()
メソッドを持っている必要があります。次いで、リスト項目の画像が異なる色であろう:)
[この回答](HTTPS:/ /stackoverflow.com/a/32048294/6891637)が役立ちます。 –
@Ajil O残念ながら、私のスクリーンショットは、 'setColorFilter'メソッドが動作していることを示しています。しかし、色はランダムに生成されません。 –
ドロアブルはどのように見えますか? –