2010-03-29 10 views

Antwort

30

Mit der Methode "getFields" für die Zeichenklasse können Sie die gesamte Liste der Zeichnungsobjekte durchlaufen.

Field[] drawables = android.R.drawable.class.getFields(); 
for (Field f : drawables) { 
    try { 
     System.out.println("R.drawable." + f.getName()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

Referenz: http://www.darshancomputing.com/android/1.5-drawables.html

+6

Verwendung von 'android.R' wird nur die nativen Zeichen im Android SDK geben. Verwenden Sie 'com.example.appname.R' – Anonsage

+0

, um die Zeichen Ihrer App zu erhalten. Warum fangen Sie eine generische Ausnahme ab? –

+0

Ich bin mir nicht sicher - es ist schon eine Weile her, seit ich diese Antwort geschrieben habe. Es muss einen Grund gegeben haben .. – Seidr

0

Wenn Sie in Ihr generiertes R.drawable-Objekt schauen, sehen Sie, dass die IDs zusammenhängend sind, in meinem Fall (und wahrscheinlich auch bei Ihnen), beginnend bei 0x7f020000. Da sie scheinbar nach Alpha sortiert sind, könnten Sie wahrscheinlich Dummy-Bilder AAAAAAA.png und ZZZZZZ.png hinzufügen und zwischen den beiden IDs iterieren.

Ich kann Ihre Gründe für den Versuch nicht unterstützen, aber ich denke, das würde funktionieren.

+0

Sie haben recht. Siehe meine Antwort hier: http://StackOverflow.com/A/19131585/1287856 Es funktioniert auch, um in den Raw/Ordner sowie den Xml/Ordner zu iterieren. –

Verwandte Themen