2016-05-17 12 views
1

Ich habe Bilder als Ressourcen und die Dateinamen sind image1, image2, ... und so weiter. Ich möchte diese Bilder in einem Karussell verwenden. Ich kann das gleiche Bild im Karussell erzeugen, aber der Name der Ressource sollte sich in jeder Runde ändern. HierUnterschiedliches Bild für jede Runde von for-Schleife

ist der Code:

for (int i = 0; i < 4; i++) { 
     ImageView imageView = new ImageView(this); 
     imageView.setId(i); 
     imageView.setPadding(2, 2, 2, 2); 
     imageView.setLayoutParams(layoutParams); 
     imageView.setImageBitmap(BitmapFactory.decodeResource(
       getResources(), R.drawable.image_01)); 
     imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
     mainHorizLinLayout.addView(imageView); 
    } 

Also statt image_01 Ich möchte würde image_ verwenden + i. Ich habe versucht, eine Zeichenfolge zu erstellen und diese in R.drawable.image_01 verwenden, aber es hat nicht funktioniert.

Irgendwelche Ideen, Panzer?

+1

'R.drawable.image_01' ist ein Ersatz. Was Sie tun könnten, ist, alle Bild-IDs zu sammeln und sie in ein Array zu werfen. –

+0

Angenommen, R.drawable.image_01 == 1111, sind Sie garantiert, dass R.drawable.image_02 ist 1112? –

Antwort

2

R.drawable.image_01 ist keine Zeichenfolge (ALT + klicken Sie auf R Klasse). Aber diese ints sind, um so die Sie tun können:

imageView.setImageBitmap(BitmapFactory.decodeResource(
      getResources(), R.drawable.image_01 + i)); 
2

Versuchen Sie, diese Art und Weise

int[] images = {R.drawable.image_01, R.drawable.image_02, R.drawable.image_03, R.drawable.image_04, R.drawable.image_05}; 

for (int i = 0; i < images.length; i++) { 
    ImageView imageView = new ImageView(this); 
    imageView.setId(i); 
    imageView.setPadding(2, 2, 2, 2); 
    imageView.setLayoutParams(layoutParams); 
    imageView.setImageBitmap(BitmapFactory.decodeResource(
       getResources(), images[i])); 
    imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
    mainHorizLinLayout.addView(imageView); 
} 
2

Eine Möglichkeit vorgeschlagen, vor mir ist ein Array haben mit den Bild Ressourcen-IDs.

Ein anderer Weg ist das gewünschte Bild der Ressource-ID wie folgt zu erhalten:

für eine ID
int drawableResourceId = this.getResources().getIdentifier("image_" + i, "drawable", this.getPackageName());