2017-01-13 1 views
-3

Ich habe 320 Bilder in ziehbar Verzeichnis und Image so, wenn es angeklickt wird, hat das Bild zufällig geändert werden, der Bildname ist wie diese file_xyz, die xyz Zahlen sind ein zufällig generierte mit dieser Code:ändert Image Drawable Programetically

rand = new Random(System.currentTimeMillis()); 
    x = rand.nextInt(3 - 0) + 0; 
    y = rand.nextInt(7 - 0) + 0; 
    z = rand.nextInt(9 - 0) + 0; 

zurück "shape_" + x + y + z;

so geben Sie mir eine Zeichenfolge, die ich verwenden möchte, um die Ressource von ImageButton zu ändern, also wie Sie dies anwenden und die Änderungen zufällig in getrennten Zeiten vornehmen?

Antwort

0

versuchen Sie dies:

int resID = getResources().getIdentifier(pDrawableName , "drawable", getPackageName());  
    imageview.setBackgroundResource(resID); 

wo String pDrawableName = file_xyz ist Ihr Bild Name

+0

Ich versuche, dies aber wenn ich diesen Code die 'GetResources schreiben()' zeigen nicht nur 'getClass()' @ rafsanahmad007 –

+0

Verwendung 'getApplicationContext(). GetResources()' – rafsanahmad007

+0

das gleiche mit 'getApplicationContext() '@ rafsanahmad007 –

0

Wenn Sie zuerst den genauen Dateinamen Zeichenfolge erstellen, wie im ziehbar Ordner (ich es String Bild nennen wollen), können Sie tun die folgenden:

ImageButton imageButton = (ImageButton) findViewById(R.id.image_button); 
imageButton.setImageResource(R.drawable.image); 

Wo image_button ist, was Sie als ID für Ihre Bildschaltfläche festgelegt haben.

+0

hat nicht funktioniert .... –

+0

Haben Sie überprüft, ob der erzeugte Bildname genau mit dem Bildnamen in Ihrem zeichnenden Ordner übereinstimmt? –