2012-03-07 92 views
0

我正在尝试使用for循环来为多个图像视图设置图像资源。我知道我提出的解决方案不会工作,我知道为什么。我的问题是我可以用什么来代替这个?只是为了说清楚,只有一些图像会根据区域阵列包含的内容进行更新。例如4,7,9这意味着只有图像iv_4,iv_7,iv_9。使用for循环为多个图像视图设置图像资源

 iv_0 = (ImageView) ViewLameness.findViewById(R.id.iv_0); 
    iv_1 = (ImageView) ViewLameness.findViewById(R.id.iv_1); 
    iv_2 = (ImageView) ViewLameness.findViewById(R.id.iv_2); 
    iv_3 = (ImageView) ViewLameness.findViewById(R.id.iv_3); 
    iv_4 = (ImageView) ViewLameness.findViewById(R.id.iv_4); 
    iv_5 = (ImageView) ViewLameness.findViewById(R.id.iv_5); 
    iv_6 = (ImageView) ViewLameness.findViewById(R.id.iv_6); 
    iv_7 = (ImageView) ViewLameness.findViewById(R.id.iv_7); 
    iv_8 = (ImageView) ViewLameness.findViewById(R.id.iv_8); 
    iv_9 = (ImageView) ViewLameness.findViewById(R.id.iv_9); 
    iv_10 = (ImageView) ViewLameness.findViewById(R.id.iv_10); 
    iv_11 = (ImageView) ViewLameness.findViewById(R.id.iv_11); 
    iv_12 = (ImageView) ViewLameness.findViewById(R.id.iv_12); 
    iv_13 = (ImageView) ViewLameness.findViewById(R.id.iv_13); 

    for (int i = 0; i < areasArray.length; i++) { 

     int[] images = { R.drawable.f0sc, R.drawable.f1sc, R.drawable.f2sc, 
       R.drawable.f3sc, R.drawable.f4sc, R.drawable.f5sc, 
       R.drawable.f6sc, R.drawable.f7sc, R.drawable.f8sc, 
       R.drawable.f9sc, R.drawable.f10sc, R.drawable.f11sc, 
       R.drawable.f12sc, R.drawable.f13sc }; 

     String image = "iv_" + areasArray[i]; 

     image.setImageResource(images[i]); 

    } 
+0

第一件事,第一,为什么是'images'里面的for循环呢?你确定这个代码吗? image是一个'String'而不是'ImageView',一个'String'怎么可以有一个'setImageResource'方法? – 2012-03-07 22:54:45

+0

你知道它不会工作,你知道为什么..停止做_why_。 – paislee 2012-03-07 22:57:08

+0

我知道这段代码是错误的,我知道一个字符串不能是一个ImageView,这就是为什么我问这个问题。我的问题是我该如何做这项工作? – 2012-03-07 23:19:41

回答

3

这应该工作..

ImageView[] images = new ImageView[] { iv_1, iv_2, ... }; 
int[] res = new int[] { R.id.iv_1, R.id.iv_2, ... }; 
int[] drawables = new int[] { R.drawable.f0sc, R.drawable.f1sc, ... }; 
for (int i = 0; i < images.length; i++) { 
    images[i] = (ImageView) findViewById(res[i]); 
    images[i].setImageResource(drawables[i]); 
} 
+0

谢谢你的回复,我并不是说可以制作一组Imageview。现在我只需要做到这一点,它只会更新areasArray定义的图像,但我应该能够弄清楚。谢谢杰米 – 2012-03-08 00:15:55

+0

如果我创建这样一个数组,如果'ImageView'有无论如何我可以指定他们的位置?例如:如果我的布局是相对布局,每个'ImageView'如何放置在屏幕上? – TheRookierLearner 2013-04-12 06:31:32