2010-07-25 9 views
5

Come posso ridurre la dimensione del carattere della mia filatrice? Ho ridotto la dimensione dello spinner a 35 pixel a causa della quale il mio testo viene tagliato a metà.Dimensioni testo di una spilla

Come faccio? Inoltre non voglio che nulla venga selezionato in anticipo.

Il testo predefinito deve essere "select some value".

+0

Non so molto di spinner, ma se ricordo bene, utilizza un ArrayAdapter per visualizzare gli elementi. Suppongo quindi di poter creare una sottoclasse e sovrascrivere getView? È solo un'idea, non l'ho ancora testata. Ci provo. – Sephy

risposta

22

dopo alcuni test, c'è un modo più semplice della sottoclasse di ArrayAdapter. Modificare il

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array,android.R.layout.simple_spinner_item);//this is from the tutorial, adapt with your line 

a questa linea:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.textview); 

Non vi resta che cambiare il design del TextView si utilizza del Spinner. Ho appena provato con questo, come il layout del textview.xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:text="@+id/TextView01" android:id="@+id/TextView01" 
android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp"></TextView> 
10

Modifica

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array,android.R.layout.simple_spinner_item); 

a ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.textview);

cambierà soltanto l'articolo che è visibile per impostazione predefinita sul filatore. Se abbiamo bisogno lo stesso stile da applicare su tutti gli elementi della filatrice, abbiamo bisogno di cambiare

adapter.setDropDownViewResource(android.R.layout.simple_spinner_item) to 


adapter.setDropDownViewResource(R.layout.textview); 
4

definire 2 xml: R.layout.spinner_item, R.layout.spinner_dropdown_item

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.spinner_item); 
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); 

spinner_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    style="?android:attr/spinnerItemStyle" 
    android:singleLine="true" 
    android:ellipsize="marquee" 
    android:textSize="18sp" > 
</TextView> 

spinner_dropdown_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerDropDownItemStyle" 
    android:singleLine="true" 
    android:layout_width="match_parent" 
    android:layout_height="48dp" 
    android:ellipsize="marquee" 
    android:textSize="18sp" /> 

-------------------------------- Aggiornamento --------------- -----------------------

il codice resto:

final ActionBar actionBar = getActivity().getActionBar(); 
RelativeLayout relative = new RelativeLayout(getActivity()); 
Spinner spinner = new Spinner(getActivity()); 
spinner.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)); 

relative.addView(spinner); 
actionBar.setDisplayShowCustomEnabled(true); 
actionBar.setCustomView(relative); 

// Set adapter and listener 
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.spinner_item); 
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); 
+1

Una volta definiti questi 2 file XML, come vengono incorporati nel resto del codice? – Rich

0

Impostazione android:scaleX e anrdoid:scaleY sembra come un modo semplice per cambiare la dimensione del carattere di spinner.

Problemi correlati