2015-04-14 4 views
-1

У меня есть 20 ImageViews в моей деятельности. Мне нужен один метод, чтобы легко управлять ими.Как я могу управлять большим количеством изображений для Android?

Мой код, как это прямо сейчас:

Imageview img1 = (Imageview) findviewbyid(R.id.imageview1); 
img1.setbackgroundresource(R.drawable.image1); 

Imageview img2 = (Imageview) findviewbyid(R.id.imageview2); 
img2.setbackgroundresource(R.drawable.image2); 

Imageview img3 = (Imageview) findviewbyid(R.id.imageview3); 
img3.setbackgroundresource(R.drawable.image3); 
. 
. 
. 

но мне нужен более легкий путь!

+0

Так, если вы звоните 'setBackgroundResource()', который является одним распространенным методом, который был там с уровнем API 1, не квалифицируется как «легко», то, что делает? Как насчет того, чтобы начать с объяснения, что именно не так с вашим кодом в его текущем состоянии ... –

+0

Почему вы не используете сетку или список –

+0

Могу ли я использовать строку в качестве имени изображения? – john

ответ

0

Вы можете создать массив идентификаторов со всеми ресурсами:

int[] myIds = {R.id.imageview1, R.id.imageview2, R.id.imageview3, ...}; 
int[] myDrawables = {R.drawable.image1, R.drawable.image2, R.drawable.image3, ...}; 

Тогда итерацию через него, используя для цикла, в то время, map функция (я знаю, что это Java 6 ...).

for (int i = 0; i< myIds.length; i++) { 
    Imageview img = (Imageview) findviewbyid(myIds[i]); 
    img.setbackgroundresource(myDrawables[i]); 
} 

Хотя было бы лучше использовать GridView/ListView с адаптером для этого

0

кажется все ваши ресурсы динамически не определены. Почему вы не просто установить их в XML:

<ImageView 
    android:id="@+id/imageview1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/image1"/>