リソースIDを文字列から生成する方法
大量の画像データ(例えばm0.png〜m99.png)をリソースから取得する場合、以下のように全て記述するのは非効率的です。
mBitmap[0] = BitmapFactory.decodeResource(getResources(),R.drawable.m0); mBitmap[1] = BitmapFactory.decodeResource(getResources(),R.drawable.m1); mBitmap[2] = BitmapFactory.decodeResource(getResources(),R.drawable.m2); mBitmap[3] = BitmapFactory.decodeResource(getResources(),R.drawable.m3); ・ ・ ・ mBitmap[99] = BitmapFactory.decodeResource(getResources(),R.drawable.m99);
こんなときは、リソースIDを文字列から生成すればソースがスッキリします。
for(int i=0;i<100;i++){ int resId = getResources().getIdentifier("m"+String.valueOf(i),"drawable",this.getPackageName()); mBitmap[i] = BitmapFactory.decodeResource(getResources(),resId); }
レイアウトからfindViewById()で大量のButtonを取得したい等汎用的に使えるテクニックです。
これは便利。