webentwicklung-frage-antwort-db.com.de

Wie kann man die Schriftgröße von Spinner-Objekten erhöhen?

Dies ist mein Spinnercode:

Spinner food = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> foodadapter = ArrayAdapter.createFromResource(
        this, R.array.item_array, Android.R.layout.simple_spinner_item);
foodadapter.setDropDownViewResource(Android.R.layout.simple_spinner_item);        
food.setAdapter(foodadapter);

Dies ist ein Teil der Layoutdatei, in der ich den Spinner beschrieben habe:

<Spinner
        Android:id="@+id/spinner1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentRight="true"
        Android:layout_alignParentTop="true"
        Android:layout_toRightOf="@+id/textView1" />

Dies ist der item_array:

<resources>
    <string name="item_picker">Select an iten</string>
    <string-array name="item_array">
        <item>Pizza</item>
        <item>Burger</item>
        <item>Sandwiches</item>
        <item>Bread</item>
        <item>Pastries</item>
        <item>Snackers</item>
    </string-array>
</resources>

Hinweis: Ich möchte keinen simple_spinner_dropdown_item.

Ich möchte nur die Größe vergrößern. Wie kann ich das machen?

30
divaNilisha

Speichern Sie den folgenden XML-Code unter dem Namen spinner_layout.xml im Layoutordner

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:Android="http://schemas.Android.com/apk/res/Android"
          Android:id="@+id/spinnerTarget"
          Android:layout_width="fill_parent"
          Android:layout_height="wrap_content"
          Android:textColor="#000000"
          Android:textSize="13sp"
/>

Ändern Sie das gewünschte textSize. und füllen Sie es mit dem folgenden Adaptercode aus.

Spinner food = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> foodadapter = ArrayAdapter.createFromResource(
            this, R.array.item_array, R.layout.spinner_layout);
foodadapter.setDropDownViewResource(R.layout.spinner_layout);
food.setAdapter(foodadapter);
66
V.J.

Nur über XML

Nur um anderen zu helfen, falls sie ihre Spinner-Einträge statisch in XML setzen.

Die obigen Antworten funktionieren, wenn Sie Ihren Spinner über Code erstellen, aber wenn Sie Ihre Spinner-Einträge über XML festlegen, d. H. Mit Android:entries, dann können Sie die Textgröße und andere Attribute mit den folgenden zwei Designeinstellungen anpassen:

In Ihrem res/values/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppBaseTheme" parent="Android:Theme.Holo">
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">

        <!-- For the resting Spinner style -->
        <item name="Android:spinnerItemStyle">
            @style/spinnerItemStyle
        </item> 

        <!-- For each individual Spinner list item once clicked on -->
        <item name="Android:spinnerDropDownItemStyle">
            @style/spinnerDropDownItemStyle
        </item>

    </style>

    <style name="spinnerItemStyle">
        <item name="Android:padding">10dp</item>
        <item name="Android:textSize">20sp</item>
        <item name="Android:textColor">#FFFFFF</item>
    </style>

    <style name="spinnerDropDownItemStyle">
        <item name="Android:padding">20dp</item>
        <item name="Android:textSize">30sp</item>
        <item name="Android:textColor">#FFFFFF</item>
    </style>

</resources>
30
Joshua Pinter

Die obigen Lösungen sind alle in der XML-Datei hart codiert. 

Es gibt eine alternative Lösung, mit der Sie sie programmgesteuert ändern können https://stackoverflow.com/a/11494962/5089713 Sobald Sie das TextView haben, können Sie alles damit machen Instanz ändern Sie die Schriftgröße. 

ihr Code sieht dann so aus 

Spinner food = (Spinner) findViewById(R.id.spinner1);

CharSequence[] strings = getActivity().getResources().getTextArray(R.array.item_array);
    ArrayAdapter<CharSequence> foodadapter = new ArrayAdapter<CharSequence>(getActivity(), Android.R.layout.simple_spinner_item, strings){
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view =super.getView(position, convertView, parent);
            TextView textView=(TextView) view.findViewById(Android.R.id.text1);
            // do whatever you want with this text view
            textView.setTextSize(20);
            return view;
        }
    };

foodadapter.setDropDownViewResource(Android.R.layout.simple_spinner_item);        
food.setAdapter(foodadapter);
2
Diiiiii
private OnItemSelectedListener spinner = new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

       ((TextView) parent.getChildAt(0)).setTextColor(Color.BLACK);
       ((TextView) parent.getChildAt(0)).setTextSize(10);

    }

    public void onNothingSelected(AdapterView<?> parent) {

    }
};
0
David Kariuki

Wenn Sie nur die Größe erhöhen möchten, damit das Dropdown-Menü gut ansprechbar ist, können Sie einfach simple_spinner_item in simple_spinner_dropdown_item ändern:

 ArrayAdapter.createFromResource(this, R.array.item_array, Android.R.layout.simple_spinner_dropdown_item);
                                                                       ---------------------------^
0
Sean Stayn