2011-12-15 34 views
5

Estoy accediendo a un spinner en el archivo java, configurando su entrada, que es un conjunto de cadenas que tiene el nombre de Estados Unidos. Quiero dar mi propio tamaño al estado seleccionado en spinner? ¿Cómo darle tamaño personalizado?Cómo cambiar el tamaño del texto del elemento de Android Spinner

este es el código:

Spinner state = (Spinner) findViewById(R.id.state); 
      ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
        this, R.array.state, android.R.layout.simple_spinner_item); 
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      state.setAdapter(adapter); 

xml:

<Spinner 
android:id="@+id/state" 
android:layout_width="wrap_content" 
android:layout_height="60dip" 
android:layout_marginLeft="10dip" 
android:addStatesFromChildren="true" > 
</Spinner> 

matriz de cadena que se mostrará en Spinner:

<string-array name="state"> 

     <item>Select State</item> 
     <item>Alabama</item> 
     <item>Alaska</item> 
     <item>American Samoa</item> 
     <item>Arizona</item> 
     <item>Arkansas</item> 
     <item>California</item> 
     <item>Colorado</item> 
     <item>Connecticut</item> 
     <item>Delaware</item> 
     <item>District of Columbia</item> 
     <item>Florida</item> 
     <item>Georgia</item> 
     <item>Guam</item> 
     <item>Hawaii</item> 
     <item>Idaho</item> 
     <item>Illinois</item> 
     <item>Indiana</item> 
     <item>Iowa</item> 
     <item>Kansas</item> 
     <item>Kentucky</item> 
     <item>Louisiana</item> 
     <item>Maine</item> 
     <item>Maryland</item> 
     <item>Massachusetts</item> 
     <item>Michigan</item> 
     <item>Minnesota</item> 
     <item>Mississippi</item> 
     <item>Missouri</item> 
     <item>Montana</item> 
     <item>Nebraska</item> 
     <item>Nevada</item> 
     <item>New Hampshire</item> 
     <item>New Jersey</item> 
     <item>New Mexico</item> 
     <item>New York</item> 
     <item>North Carolina</item> 
     <item>North Dakota</item> 
     <item>Northern Marianas Islands</item> 
     <item>Ohio</item> 
     <item>Oklahoma</item> 
     <item>Oregon</item> 
     <item>Pennsylvania</item> 
     <item>Puerto Rico</item> 
     <item>Rhode Island</item> 
     <item>South Carolina</item> 
     <item>South Dakota</item> 
     <item>Tennessee</item> 
     <item>Texas</item> 
     <item>Utah</item> 
     <item>Vermont</item> 
     <item>Virginia</item> 
     <item>Virgin Islands</item> 
     <item>Washington</item> 
     <item>West Virginia</item> 
     <item>Wisconsin</item> 
     <item>Wyoming</item> 
    </string-array> 

Respuesta

9

puede utilizar

adapter.setDropDownViewResource(android.R.layout.simple_list_item_1); 

o puede darle a su disposición:

adapter.setDropDownViewResource(R.layout.my_layout); 

y su my_layout.xml debe tener este aspecto:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+android:id/text1" android:layout_marginTop="5dp" 
     android:layout_marginBottom="5dp" android:padding="3dp" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:gravity="center_horizontal"/> 
2

intenta utilizar un adaptador personalizado como este,

 ArrayAdapter<String> spinner_adapter = new ArrayAdapter<String>(getParent() 
       .getApplicationContext(), R.layout.my_spinner_style,spinner_values) { 

      public View getView(int position, View convertView, ViewGroup parent) { 
       View v = super.getView(position, convertView, parent); 
       ((TextView) v).setTextSize(18); 

       return v; 
      } 

      public View getDropDownView(int position, View convertView, 
        ViewGroup parent) { 
       View v = super.getDropDownView(position, convertView, parent); 
       v.setBackgroundResource(R.drawable.spinner_drop_down); 
       ((TextView) v).setTextColor(Color 
         .parseColor(config.sort_by_label_color)); 
       return v; 
      } 
     }; 

R.layout.my_spinner_style

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+android:id/text1" 
style="?android:attr/spinnerItemStyle" 
android:paddingLeft="5dip" 
android:singleLine="true" 
android:textColor="#ffffff" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:ellipsize="marquee" /> 

Y configurar este adaptador para ruleta,

 spinner.setAdapter(spinner_adapter); 
Cuestiones relacionadas