2011-08-20 6 views
5

Sto provando a utilizzare uno dei drawable spinner di Android (spinner_black_16, spinner_black_20, spinner_black_48 o spinner_black_76) come dimostrato su this page. Il mio progetto utilizza SDK 2.1, quindi l'ho aggiornato a 2.2, in quanto quella pagina indica la versione dell'SDK in cui sono inclusi. Sfortunatamente, nessuno dei android.R.drawable.spinner_black_xx sembra essere definito.Non è possibile utilizzare il filatore Android?

Questi drawable non sono disponibili per l'utilizzo da parte degli sviluppatori? L'unico altro modo mi sembra di essere in grado di accedervi è tramite il seguente metodo contorto:

final Drawable spinner = new ProgressBar(context).getIndeterminateDrawable(); 

Purtroppo, che mi fornisce il filatore bianca, non quello nero.

+1

Nonostante il fatto che non riesca ad accedere a nessuno di questi spinners (ho provato ad accedervi tramite android.R.drawable.spinner_black _...) un consiglio: ti consiglio di non utilizzare gli stili nativi di Android. Per la semplice ragione, che potrebbero scomparire/cambiare in qualsiasi momento. – Ready4Android

+0

@ Ready4Android - Hai ragione. Se pubblichi una risposta, segnerò come corretta. –

+2

puoi anche provare a passare attraverso le cartelle sdk di Android per prendere i drawable e importarli nel tuo progetto. puoi trovarli in /platforms/android-xx/data/res – Apperside

risposta

1

Il modo migliore per accedere a questi oggetti estraibili è copiarli dalla directory SDK nel progetto e quindi accedervi come qualsiasi altra risorsa.

I drawable si trovano in $ANDROID_SDK_DIR/platforms/android-*/data/res/drawable-*/. Puoi scaricare e selezionare la versione del sistema operativo da cui desideri estrarre i drawable. livello di API 7/OS versione 2.1 ha il complemento completo:

platforms/android-7/data/res/drawable-mdpi/spinner_black_16.png 
platforms/android-7/data/res/drawable-mdpi/spinner_black_20.png 
platforms/android-7/data/res/drawable-mdpi/spinner_black_48.png 
platforms/android-7/data/res/drawable-mdpi/spinner_black_76.png 
platforms/android-7/data/res/drawable-hdpi/spinner_black_16.png 
platforms/android-7/data/res/drawable-hdpi/spinner_black_20.png 
platforms/android-7/data/res/drawable-hdpi/spinner_black_48.png 
platforms/android-7/data/res/drawable-hdpi/spinner_black_76.png 

Anche se non attualmente, "Linee guida icona del design" di Android ufficiali used to explicitly address this situation e raccomanda la copia:

Poiché le risorse può cambiare tra la piattaforma versioni, non si dovrebbe fare riferimento alle icone incorporate utilizzando gli ID delle risorse della piattaforma Android (ad es. icone della barra di stato sotto android.R.drawable). Se si desidera utilizzare qualsiasi icona o altre risorse estraibili interne, è necessario archiviare una copia locale di tali icone o disegni nelle risorse dell'applicazione, quindi fare riferimento alla copia locale dal codice dell'applicazione. In questo modo, puoi mantenere il controllo sull'aspetto delle tue icone, anche se la copia del sistema cambia.