R.drawable.名前の名前部分を変数で動的に置き換えたい場合(Android)

Doctor.Y
R.drawable.名前の名前部分を変数で動的に置き換えたい場合(Android)

例:数字だけ名前異なるbitmapをたくさん読み込みたい場合

BitmapFactory.decodeResourceにR.drawable.名前で指定すると名前を変えただけのコードを何度もかかないといけなくなるのでとても面倒です。その場合は、BitmapFactory.decodeResourceにR.drawable.名前で指定するのではなく、getResources().getIdentifierでbitmap名を変数で指定して読み込むようにすると楽です。

改善前:BitmapFactory.decodeResourceにR.drawable.名前で指定(とても面倒)

Resources r = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(r, R.drawable.img1);
Bitmap bitmap = BitmapFactory.decodeResource(r, R.drawable.img2);
Bitmap bitmap = BitmapFactory.decodeResource(r, R.drawable.img3);
Bitmap bitmap = BitmapFactory.decodeResource(r, R.drawable.img4);
Bitmap bitmap = BitmapFactory.decodeResource(r, R.drawable.img5);
Bitmap bitmap = BitmapFactory.decodeResource(r, R.drawable.img6);
Bitmap bitmap = BitmapFactory.decodeResource(r, R.drawable.img7);
Bitmap bitmap = BitmapFactory.decodeResource(r, R.drawable.img8);
Bitmap bitmap = BitmapFactory.decodeResource(r, R.drawable.img9);
Bitmap bitmap = BitmapFactory.decodeResource(r, R.drawable.img10);

改善後:getResources().getIdentifierでbitmap名を変数で指定

for (int i = 1; i < 11; i++){
id = getResources().getIdentifier(“img” + i, “drawable”, getPackageName());
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), id);
}

https://matome.naver.jp/odai/2141071507609991701
2014年09月15日