ここでは、レイヤリストの簡易版を示します。スケーリングを防ぐためにアイテムにビットマップがあります。私はプログラムでこのビットマップのdrawableを変更したい。これを行う方法はありますか?LayerListDrawableでのビットマップ描画の変更
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/item"
android:left="165dp"
android:top="245dp" >
<bitmap
android:id="@+id/bitmap"
android:src="@drawable/tag_de_01"
android:gravity="top|left" />
</item>
</layer-list>
私は成功せず、次のことを試してみました:BitmapDrawableへ
Resources res = getResources();
LayerDrawable layerDrawable = (LayerDrawable) res.getDrawable(R.drawable.layer_list_drawable);
Drawable newDrawable = (Drawable)res.getDrawable(R.drawable.something);
// works, but scales the image because the drawable of the item is set instead the one of the bitmap
layerDrawable.setDrawableByLayerId(R.id.item, newDrawable);
// doesn't work at all
layerDrawable.setDrawableByLayerId(R.id.bitmap, newDrawable);
私は同じ問題があります。助けてもらえますか? – Lobo
あなたは答えを出すことができましたか? –