Подтвердить что ты не робот

Как увеличить размер шрифта?

Это мой код spinner:

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

Это часть файла макета, где я описал spinner:

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

Это 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>

Примечание. Я не хочу simple_spinner_dropdown_item.

Я просто хочу увеличить размер. Как я могу это сделать?

4b9b3361

Ответ 1

Сохраните приведенный ниже xml как spinner_layout.xml в папке макета

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

измените требуемый текст. и используйте следующий код адаптера, чтобы заполнить его.

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

Ответ 2

Только через XML

Просто, чтобы помочь другим, если они статически устанавливают свои записи Spinner в XML.

Вышеупомянутые ответы работают, если вы создаете свой Spinner через код, но если вы настраиваете записи Spinner через XML, то есть используя android:entries, вы можете настроить размер текста и другие атрибуты с помощью следующих двух параметров темы

В 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>

Ответ 3

Вышеупомянутые решения жестко закодированы в xml.

Существует альтернативное решение, которое позволяет вам программно изменить его. fooobar.com/info/142404/... Когда у вас есть TextView, вы можете делать с ним все, например, изменить размер шрифта.

тогда ваш код выглядит как

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