2012-04-18 55 views
2
int i = 1; 
String IMG = "pic"; 
IMG = IMG + Integer.toString(i); 
i = i + 1; 

imageview1.setImageResource(R.drawable.IMG); 

R.drawable.IMG其中IMG是一個變量。setImageResource

這是不對的。什麼是正確的方式?我想要將圖像視圖從pic1更改爲picN。


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

這是好,但我怎樣才能插入一個矢量元素爲ImageView的? 對不起我的英文不好的水平:)

回答

0

標識出您的應用程序的資源標識符不一系列連續的數字。創建一個您添加的圖像數組,例如

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

,並增加在替代指標?

+0

imageview1.setImageResource(images [i]); ???? – 2012-04-18 21:04:45

4

這可以通過使用

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

imageview1.setImageResource(resourceId); 

來完成這被證明是相當緩慢的。一個更好的選擇可能是通過保持你繪製的一組ID和環..

int[] drawables = new int[] { R.drawable.pic1, R.drawable.pic2 }; 
+0

如何插入在imageview的所述向量的元素? – 2012-04-18 21:14:34

+0

imageview1.setImageResource(抽拉[I]); – dymmeh 2012-04-18 21:18:22

0

由@dymmeh 給出的解決方案類似,您可以做到這一點也與Java反射,但我懷疑它可以也很慢。

int resId = R.drawable.getClass().getField("pic" + i).getInt(R.drawable);