2013-02-22 10 views
11

Desidero utilizzare il widget del componente NumberPicker, ma invece nel tema Holo predefinito devo sostituire il colore blu con l'arancione poiché questo è il colore predefinito nel mio stile. Come posso sostituire il colore blu e il colore dei numeri e mantenere tutte le funzionalità del componente? the default number picker in Holo graziecome cambiare lo stile di selezione numero in Android?

+1

Perché Google non consente styling NumberPicker –

risposta

0

Effettua una copia della libreria/res/drawable - */numberpicker_selection_divider.9.png e chiama quindi, ad esempio, custom_np_sd.9.png.

stile NumberPicker Override di default tramite tema attività:

<style name="AppTheme" parent="@style/Holo.Theme"> 
    <item name="numberPickerStyle">@style/CustomNPStyle</item> 
</style> 
<style name="CustomNPStyle" parent="@style/Holo.NumberPicker"> 
    <item name="selectionDivider">@drawable/custom_np_sd</item> 
</style> 

e applicare @ stile/AppTheme come tema l'attività.

+3

dove posso trovare la cartella della libreria per copiare lo stile – user1796624

+6

Non funziona Errore: errore nel recupero del genitore per l'articolo: Nessuna risorsa trovata che corrisponde al nome specificato '@android: stile/Widget.Holo.NumberPicker'. Errore: nessuna risorsa trovata corrispondente al nome specificato: attr 'android: selectionDivider'. –

+0

Sono d'accordo con il commento sopra. Nessuna risorsa trovata Come usarlo? – maXp

23

Sfortunatamente, non è possibile modificarlo. Gli attributi di stili e stili per NumberPicker non sono presenti nell'API pubblica, pertanto non è possibile impostarli e modificare l'aspetto predefinito. È possibile selezionare solo tra il tema chiaro e scuro.

Come soluzione suggerisco di utilizzare invece la libreria android-numberpicker. La libreria è fondamentalmente una porta di NumberPicker estratto dai codici sorgente di Android. Ma è meglio di questo, anche i backport NumberPicker per Android 2.x. La libreria può essere facilmente disegnata.

Per lo stile del divisore, regolare lo stile NPWidget.Holo.NumberPicker e gli attributi selectionDivider e selectionDividerHeight.
Per modificare il testo, regolare lo stile NPWidget.Holo.EditText.NumberPickerInputText.

+0

ma utilizzando la libreria si suggerisce la funzionalità di scorrimento del componente è perduto, lo farei Mi piace davvero mantenere questa funzionalità – user1796624

+0

Anche la versione della libreria può scorrere. Non c'è problema con quello. – Tomik

+1

Non importa quale stile ho scelto, io * sempre * ho il testo nero. –

7

enter image description here

<NumberPicker 
 
     android:id="@+id/np" 
 
     android:layout_width="40dp" 
 
     android:layout_height="40dp" 
 
     android:layout_centerHorizontal="true" 
 
     android:background="@drawable/drawablenp" 
 

 

 
     android:layout_centerVertical="true"></NumberPicker>

Create a background in drawable folder

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <gradient 
     android:startColor="#707070" 
     android:centerColor="#f8f8f8" 
     android:endColor="#707070" 
     android:angle="270"/> 
</shape>