私のアプリケーションでは....temp1.jpg、temp2.jpg ..... upto temp35.jpg、
ボタンをクリックすると、ImageViewに1つずつ画像をロードしたい....次のようにしたい:
cnt = 1;
imagename = "temp" + cnt + ".jpg";
cnt ++;
だから私の混乱は「とにかくtemp1.jpgなどの文字列(imagename変数)からimageviewに画像をロードすることはありますか」ということです。
私のアプリケーションでは....temp1.jpg、temp2.jpg ..... upto temp35.jpg、
ボタンをクリックすると、ImageViewに1つずつ画像をロードしたい....次のようにしたい:
cnt = 1;
imagename = "temp" + cnt + ".jpg";
cnt ++;
だから私の混乱は「とにかくtemp1.jpgなどの文字列(imagename変数)からimageviewに画像をロードすることはありますか」ということです。
これを試すことができます:
int cnt = 1;
//Bitmap bitmap = BitmapFactory.decodeFile("temp" + cnt + ".jpg");
int imageResource = getResources().getIdentifier("drawable/temp" + cnt + ".jpg", null, getPackageName());
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), imageResource);
imageView.setImageBitmap(bitmap);
cnt++;
それがあなたが探していたものであることを願っています。
以下のソリューションを実装しましたが、うまくいきました:
while(cnt!=n)
{
String icon="temp" + cnt;
int resID =
getResources().getIdentifier(icon,"drawable","testing.Image_Demo");
imageView.setImageResource(resID);
cnt++;
}
なぜ次のようなものではないのですか
File f = new File(PathToFiles + "/temp" + cnt + ".jpg");
if (f.exists()) {
Drawable d = Drawable.createFromPath(f);
imageview.setImageDrawable(d);
}
これが最善の解決策かどうかはわかりませんが、画像名をリソースにマップする Hashtable を作成できます。
Hashtable map;
map.put("temp1", R.drawable.temp1) // assuming temp1.jpg is in /drawable
次に、ドローアブルから ImageView をロードできます。
String imageName = "temp" + n;
Drawable d = getResources().getDrawable((int)map[imageName]);
ImageView i = new ImageView(this);
i.setImageResource(d);