ImageView
次の構文を使用して、xml にソース イメージが設定されたがあります。
<ImageView
android:id="@+id/articleImg"
style="@style/articleImgSmall_2"
android:src="@drawable/default_m" />
ここで、この画像をプログラムで変更する必要があります。必要なのは、古い画像を削除して新しい画像を追加することです。私が行ったのは次のことです:
myImgView.setBackgroundResource(R.drawable.monkey);
動作しますが、Android が新しい画像を古い画像の上に積み重ねていることに気付きました (それが議論に関係ないことをどうやって見つけたのかは聞かないでください :)。新しい画像を設定する前に、古い画像を必ず削除する必要があります。
どうすればそれを達成できるでしょうか?
ベストアンサー1
ImageView ソースの変更:
myImgView.setBackgroundResource(R.drawable.monkey);
あなたはその猿を背景に置いています。
私は以下を使用することをお勧めしますsetImageResource()
方法:
myImgView.setImageResource(R.drawable.monkey);
またはsetImageDrawable()
方法:
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));
*** 新しい Android API 22 はgetResources().getDrawable()
非推奨になりました。これは現在の使用方法の例です:
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey, getApplicationContext().getTheme()));
古い API バージョンを検証する方法:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey, getApplicationContext().getTheme()));
} else {
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));
}