2
int i = 1;
String IMG = "pic";
IMG = IMG + Integer.toString(i);
i = i + 1;   

imageview1.setImageResource(R.drawable.IMG);

R.drawable.IMG IMG は変数です。

これは間違っています。正しい方法は何ですか?imageview を pic1 から picN に変更したい。


int[] images = new int[]{R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};

これは良いですが、ベクター要素をイメージビューに挿入するにはどうすればよいですか? 私の悪い英語レベルでごめんなさい:)

4

3 に答える 3

4

これは、

int resourceId = getResources().getIdentifier("pic" + i, "drawable", getPackageName());

imageview1.setImageResource(resourceId);

これはかなり遅いことが証明されています。より良いオプションは、ドローアブル ID の配列を保持し、それをループすることです..

int[] drawables = new int[] { R.drawable.pic1, R.drawable.pic2 };
于 2012-04-18T21:00:21.537 に答える
0

アプリ内のリソースを識別する識別子は、一連の連番ではありません。追加した画像の配列を作成します。

int[] images = new int[]{R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};

代わりにそのインデックスをインクリメントしますか?

于 2012-04-18T21:00:05.967 に答える
0

@dymmeh によって提供されたソリューションと同様に、Java リフレクションでもこれを行うことができますが、それも遅くなる可能性があると思います。

int resId = R.drawable.getClass().getField("pic" + i).getInt(R.drawable);
于 2012-04-18T21:17:00.033 に答える