Невозможно изменить значок выпадающего меню Spinner - PullRequest
0 голосов
/ 15 апреля 2019

Я хочу изменить выпадающий значок счетчика на значок местоположения. Я прошел через стек и сделал изменения в соответствии с этим. Вот что это такое

 <Spinner
        android:id="@+id/spinner22"
        android:layout_width="match_parent"
        android:layout_height="35dp"
        style="@style/SpinnerTheme"
        android:gravity="end" />

В style.xml и style.xml (v21) я сделал

<style name="SpinnerTheme" parent="android:Widget.Spinner">
<item name="android:background">@drawable/bg_spinner</item>

Я создал файл ресурсов для рисования

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

<item>

    <layer-list>

        <item>
            <shape>
                <gradient android:angle="90" android:endColor="#ffffff" 
android:startColor="#ffffff" android:type="linear" />

                <stroke android:width="0.33dp" android:color="#0fb1fa" />

                <corners android:radius="0dp" />

                <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
            </shape>
        </item>

        <item android:right="5dp">

            <bitmap android:gravity="center_vertical|right" android:src="@drawable/spinnericon" />

        </item>

    </layer-list>

</item>

Это мой нарисованный файл ресурсов spinnericon.xml

<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M10,6L8.59,7.41 13.17,12l-4.58,4.59L10,18l6,-6z"/>

Java-код

    Spinner spinner12 = (Spinner) findViewById(R.id.spinner22);
    final TextView tv1 = (TextView) findViewById(R.id.tv1);

    String[] plants12 = new String[]{
            "LOCATIONS",
            "Mangalore",
            "Bangalore (coming soon)",

    };

    ArrayAdapter<String> spinnerArrayAdapter1 = new ArrayAdapter<String>(
            this,android.R.layout.simple_spinner_item,plants12
    );



    spinnerArrayAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);


    spinner12.setAdapter(spinnerArrayAdapter1);

Это предварительный просмотр, который я получаю в Android Studio

Скриншот

Журнал ошибок cat (малая часть)

 Caused by: android.view.InflateException: Binary XML file line #13: Binary XML file line #61: Error inflating class Spinner
 Caused by: android.view.InflateException: Binary XML file line #61: Error inflating class Spinner
 Caused by: android.content.res.Resources$NotFoundException: Drawable com.example.EduMangalore:drawable/bg_spinner with resource ID #0x7f070067
 Caused by: android.content.res.Resources$NotFoundException: File res/drawable/bg_spinner.xml from drawable resource ID #0x7f070067

Может ли кто-нибудь мне помочь

1 Ответ

0 голосов
/ 15 апреля 2019

Попробуйте применить следующий стиль к вашему счетчику, используя

  style="@style/SpinnerTheme"

<style name="SpinnerTheme" parent="android:Widget.Spinner">
<item name="android:background">@drawable/bg_spinner</item>
</style>

Замените arrow_down_gray на стрелку

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item>

    <layer-list>

        <item>
            <shape>
                <gradient android:angle="90" android:endColor="#ffffff" android:startColor="#ffffff" android:type="linear" />

                <stroke android:width="0.33dp" android:color="#0fb1fa" />

                <corners android:radius="0dp" />

                <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
            </shape>
        </item>

        <item android:right="5dp">

            <bitmap android:gravity="center_vertical|right" android:src="@drawable/arrow_down_gray" />

        </item>

    </layer-list>

</item>

 </selector>
...