5

私のアプリケーションでは....temp1.jpg、temp2.​​jpg ..... upto temp35.jpg、

ボタンをクリックすると、ImageViewに1つずつ画像をロードしたい....次のようにしたい:

cnt = 1;
imagename = "temp" + cnt + ".jpg";
cnt ++;

だから私の混乱は「とにかくtemp1.jpgなどの文字列(imagename変数)からimageviewに画像をロードすることはありますか」ということです。

4

5 に答える 5

4

これを試すことができます:

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++;

それがあなたが探していたものであることを願っています。

于 2010-07-07T09:22:20.800 に答える
3

以下のソリューションを実装しましたが、うまくいきました:

while(cnt!=n)
{
 String icon="temp" + cnt;
 int resID =
 getResources().getIdentifier(icon,"drawable","testing.Image_Demo");
 imageView.setImageResource(resID);
 cnt++; 
}
于 2010-07-07T10:22:58.587 に答える
3

なぜ次のようなものではないのですか

File f = new File(PathToFiles + "/temp" + cnt + ".jpg");
if (f.exists()) {
  Drawable d = Drawable.createFromPath(f);
  imageview.setImageDrawable(d);
}
于 2010-07-07T09:25:47.630 に答える
1

これが最善の解決策かどうかはわかりませんが、画像名をリソースにマップする 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);
于 2010-07-07T09:18:21.860 に答える