2010-07-25 10 views
5

Wie kann ich die Schriftgröße meines Spinner verringern? Ich habe die Spinnergröße auf 35 Pixel reduziert, wodurch mein Text halbiert wird.Textgröße eines Spinner

Wie mache ich das? Außerdem möchte ich vorher nichts ausgewählt haben.

Standardtext sollte "select some value" sein.

+0

Ich weiß nicht viel über Spinner, aber wenn ich mich gut erinnere, verwendet es einen ArrayAdapter, um die Elemente anzuzeigen. Ich nehme dann an, dass Sie es ableiten können und getView überschreiben? Es ist nur eine Idee, ich habe es nicht getestet. Ich werde es versuchen. – Sephy

Antwort

22

nach einigen Tests gibt es einen einfacheren Weg als das Unterklassen ArrayAdapter. Ändern Sie den

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 

zu dieser Zeile:

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

Sie müssen nur das Design der Textview Sie der Spinner verwenden ändern. Ich damit gerade versucht, wie das Layout der 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

Ändern

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

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

wird nur das Element ändern, die standardmäßig auf dem Spinner sichtbar ist. Wenn wir die gleiche Art müssen sich auf alle Elemente in der Schleuder aufgebracht werden, müssen wir

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


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

definieren 2 xml ändern: 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" /> 

-------------------------------- Aktualisierung --------------- -----------------------

der Rest Code:

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

Sobald diese 2 XML-Dateien definiert sind, wie werden sie in den Rest des Codes integriert? – Rich

0

android:scaleX und anrdoid:scaleY Einstellung scheint wie eine einfache Möglichkeit, das zu ändern Spinner-Schriftgröße.

Verwandte Themen