2014-10-22 15 views
5

tutti, Sto personalizzazione di un selettore della città, che utilizza tre numberPicker dentro, in questo modo: enter image description hereCome ridurre la dimensione del carattere in NumberPicker

E 'un cinese provincia-città-zona raccoglitrice.

Il codice:

String[] areas = get_from_somewhere(); 
areaPicker.setDisplayedValues(areas); 

voglio per ridurre la dimensione del carattere, qualche consiglio?

Soluzione: Refer to this

+0

si potrebbe utilizzare il 'WheelView' personalizzato che estende' View' non è vero? – Rustam

+0

@Rustam si, voglio un WheelView in stile android. ha fondato un campione su Github https://github.com/ywenblocker/Provinces-Picker-wheel, ma non si adatta al tema Holo. Dammi più informazioni, plz – Ninja

+0

meglio usare questo https://github.com/mstorsjo/vlc-android/tree/master/java-libs/WheelView/src/kankan/wheel/widget – Rustam

risposta

7

È possibile estendere il default NumberPicker nella classe personalizzata CustomNumberPicker per questo:

public class CustomNumberPicker extends NumberPicker { 

    public NumberPicker(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    public void addView(View child) { 
     super.addView(child); 
     if(child instanceof EditText) { 
      ((EditText) child).setTextSize(25); 
     } 
    } 
} 

Ora sostituire il vostro attuale NumberPicker in XML con CustomNumberPicker:

<com.pkg.name.CustomNumberPicker 
    android:id="@+id/number_picker" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 
+0

Grazie alla tua risposta, ho impostato un punto di interruzione su (vista (Modifica testo)). SetTextSize (25); Ma non è successo nulla – Ninja

+0

Hai usato CustomNumberPicker invece di NumberPicker nel tuo xml o attività? –

+0

Sì, io uso "provinciaPicker = new SmallSizeNumberPicker (context, null);" nel mio costruttore, il punto di interruzione non viene mai richiamato. Seach la parola chiave 'addView (' nella sorgente di NumberPicker.java, e non ottieni nulla. – Ninja

8

Sebbene tecnicamente non cambi le dimensioni del carattere, è possibile modificare la dimensione del testo modificando la scala dell'intera Vista NumberPicker.

<NumberPicker 
    android:id="@+id/number_picker" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:scaleX=".7" 
    android:scaleY=".7"/> 
1

Sulla base della risposta di John Starbird.

Si aggiunge stile.

<style name="NumberPickerText"> 
    <item name="android:textSize">11dp</item> 
</style> 

Aggiungi stile al selettore di numeri in XML.

android:theme="@style/NumberPickerText" 
Problemi correlati