2011-09-10 23 views
2

は、私がどこかに私のUIのアイコン画像として使用されている外側の透明なPNGファイルを持っています。私は、ユーザーが実行時に別の色を指定できるようにしたいと思います(左の画像のように、アンドロイドアイコンがあると仮定します)。または別の「背景」画像(右下の画像は、アイコンが円と三角を組み合わせた形であるとします)。私はこのpostを読んで、ColorFilterを使ってすべての白い色のピクセルをコード内の別の色に設定しました。アイコンの「背景」を変更することはできません。私はおそらくClipDrawableでこれを行うことができますが、私はどのように把握することはできませんね。Android drawable resources:アイコンの色/「背景」を動的に変更しますか?

A: Suppose I have the android icon B: Suppose the icon is a shape combining a circle and a triangle)

+0

多分私は理解していない申し訳ありません。しかし、なぜソリューションは透明な領域を持つアイコンイメージを含むレイアウトの背景色を設定するだけではないのですか? –

+0

@ teepee、私はあなたが今述べたことをどうやってやるかわからないからだと思います。 – mobileTofu

答えて

1

あなたがImageViewを使用する場合は、画像のソース(android:src)だけでなく、画像(android:background)の背景を設定することができます。したがって、画像に透明領域またはアルファチャンネルのある領域がある場合は、これらのピクセルに背景色が使用されます。

背景色を動的に変更することができます。このアプローチを使用できますか?

imageView.setBackgroundColor(0x00FF0000); // red 
+0

チップをありがとう。アルファチャンネルを持つ.pngをimageViewに設定する方法のコードの一部を共有できますか?私はそれを間違ったやりかたに設定するか、あるいは.pngを間違った方法で作り出したのですが、背景は一度も見せていなかったと思います。 – mobileTofu

+0

私は単にXMLレイアウトでpngイメージを定義します:。透明な色が本当に透明であれば、Photoshopやその他のエディタでPNG画像を確認してください - それをアンドロイドと比較することができます。 –

+0

私はあなたが言ったことを試してみたと思います。 PNGによってクリップされません。そしてはい、私はチェックし、私のPNGは透明な背景を持っていました。 – mobileTofu

関連する問題