2010-07-25 107 views
5

¿Cómo puedo disminuir el tamaño de fuente de mi spinner? Reduje el tamaño del giro a 35 píxeles debido a que mi texto se corta por la mitad.Tamaño del texto de un Spinner

¿Cómo hago eso? Además, no quiero que se seleccione nada de antemano.

El texto predeterminado debe ser "select some value".

+0

No sé mucho sobre spinner, pero si recuerdo bien, usa un ArrayAdapter para mostrar los elementos. Supongo que podría subclasificarlo y anular getView. Es solo una idea, no lo he probado. Voy a intentarlo. – Sephy

Respuesta

22

después de algunas pruebas, hay una manera más fácil que la subclasificación de ArrayAdapter. Cambiar el

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 esta línea:

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

sólo hay que cambiar el diseño de la Vista de Texto se utiliza de la Spinner. Acabo de intentar con esto, ya que el diseño de la 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

Cambio

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);

va a cambiar solamente el artículo que es visible de forma predeterminada en la ruleta. Si tenemos el mismo estilo que se aplicará en todos los elementos de la ruleta, hay que cambiar

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


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

definen 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" /> 

-------------------------------- Actualización --------------- -----------------------

el código de reposo:

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 vez que se definen estos 2 archivos XML, ¿cómo se incorporan en el resto del código? – Rich

0

Configuración android:scaleXanrdoid:scaleY y parece una forma fácil de cambiar el tamaño de letra spinner.

Cuestiones relacionadas