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

Измените цвет фона счетчика, но держите стрелку

Я прочитал несколько вещей об этом, но я не могу найти то, что мне нужно. Я хочу сохранить серо-стрелку, но хочу удалить горизонтальную полосу по умолчанию и иметь белый фон. У вас есть представление о том, как я могу это сделать?

Вот что у меня есть (стиль по умолчанию):

enter image description here

Вот что я хочу:

enter image description here

4b9b3361

Ответ 1

Для записи я нашел простое решение: оберните свой счетчик в относительном расположении и добавьте изображение:

 <RelativeLayout 
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:background="@drawable/borderbottom_white"<!-- white background with bottom border -->
     android:layout_marginTop="15dp"  >
        <Spinner
        android:id="@+id/postfield_category"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:background="@null"
        android:minHeight="0dp" />
        <ImageView 
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:src="@drawable/arrowspinner" />
    </RelativeLayout>

Ответ 2

Я сделал небольшую модификацию, основанную на ответе @Mansur Khan.

В этом случае нам не нужно добавлять ImageView, потому что фон с прядильщиками уже прозрачен. Поэтому проверьте код ниже:

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:background="@drawable/bg_spinner">
        <Spinner
            style="@style/Widget.AppCompat.DropDownItem.Spinner"
            android:layout_width="match_parent"
            android:layout_height="70dp"
            android:id="@+id/sign_up_country"
            />
    </RelativeLayout>

Вот скриншот

До: введите описание изображения здесь

После того, как: введите описание изображения здесь

bg_spinner.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="8dp" android:bottom="8dp">
        <shape>
            <solid android:color="@android:color/white" />
            <corners android:radius="2dp"/>
            <stroke
                android:width="1dp"
                android:color="#EBEBEB" />
            <padding
                android:top="16dp"
                android:bottom="16dp"
                android:left="8dp"
                android:right="16dp"/>
        </shape>
    </item>
</layer-list>

Ответ 3

Простое решение, которое не требует, чтобы вы создали свой собственный чертеж для стрелки, - это обернуть счетчик с помощью RelativeLayout и установить цвет фона в RelativeLayout, а не в spinner:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#f00" >
    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>

Ответ 4

Используйте это:

yourspinner.setOnItemSelectedListener(this);
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    ((TextView) yourspinner.getSelectedView()).setBackgroundColor(getResources()
            .getColor(R.color.your_color));
}

и ваш класс должен реализовать OnItemSelectedListener.

Ответ 5

Вот код пользовательского счетчика. Пожалуйста, проверьте это и скажите мне. Еще не проверял. Поэтому, пожалуйста, сообщите мне после проверки этого, решит ли он вашу проблему.

<Spinner                                
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/spinner_background"
    android:gravity="center"
    android:paddingRight="10dp"
    android:spinnerMode="dropdown"
    android:textColor="your text color"
    android:textSize="your text size" />

Вот выталкиваемый (spinner_background.xml), чтобы создать фон spinner.

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

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="border color" />

            <corners android:radius="3dp" />
        </shape>
    </item>
    <item
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp">
        <shape android:shape="rectangle" >
            <solid android:color="@android:color/white" />

            <corners android:radius="3dp" />
        </shape>
    </item>

</layer-list>

Edit:

пожалуйста, проверьте эту ссылку, которая дает вам представление. Настроить фон с прядильщиками

ИЛИ

вы можете сделать что-то вроде этого.

<RelativeLayout 
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:background="spinner background image">

        <Spinner       
        android:layout_width="match_parent"
        android:layout_height="match_parent"        
        android:background="@null"/>

        <ImageView 
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:src="arrow image" />

    </RelativeLayout>

Ответ 6

Хорошим способом настройки проигрывателей и любых других элементов управления Android является использование сайта Android Asset Studio и выберите Android Holo Colors Generator. Это создаст все необходимые вам ресурсы, включая "подчеркивание". Он также генерирует XML файлы, которые реализуют изменения.

Как только вы загрузите ZIP файл с этого сайта, вы просто скопируете изображения и файлы XML в свой проект.

Затем вы можете отредактировать необходимые файлы изображений, чтобы удалить подчеркивание. Это 9-патч файлы, называемые:

  • apptheme_spinner_default_holo_light.9.png
  • apptheme_spinner_disabled_holo_light.9.png
  • apptheme_spinner_focused_holo_light.9.png
  • apptheme_spinner_pressed_holo_light.9.png

Для более полного объяснения процесса и просмотра некоторых примеров XML файлов обратитесь к моему ответу:

Ответ 7

ниже макета создаст фон в прядильщице со стрелкой стрелки желания

  <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".6"
        android:background="@drawable/edit_text_rounded_shape"
        android:gravity="center|center_vertical">
    <Spinner
        android:id="@+id/spinerComanyName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:padding="4dp"
        android:layout_weight=".6"
        android:layout_gravity="center"

        android:entries="@array/spinner_item"
        android:spinnerMode="dropdown"
        android:theme="@style/Spinner"

        />
   </LinearLayout>

   <style name="Spinner">
    <!-- Used for the bottom line when not selected / focused -->
    <item name="colorControlNormal">@color/black</item>
    <item name="colorControlActivated">@color/colorPrimary</item>
    <!-- colorControlActivated & colorControlHighlight use the colorAccent          color by default -->
   </style>

edit_text_rounded_shape, которые обеспечивают цвет фона и закругленный угол

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

   <shape xmlns:android="http://schemas.android.com/apk/res/android"
         android:shape="rectangle" android:padding="10dp">
         <solid android:color="@color/white"/>
         <stroke android:color="@color/grey"/>
     <corners
     android:bottomRightRadius="15dp"
     android:bottomLeftRadius="15dp"
     android:topLeftRadius="15dp"
     android:topRightRadius="15dp"/>
  </shape>

Ответ 8

Привет, вместо того, чтобы обертывать компонент Spinner вокруг Parent Layouts, например LinearLayout, RelativeLayout и т.д., который увеличивает разбор парсов, просто создайте drawable под названием spinner_bg.xml в папке с возможностью переноса.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:src="@drawable/icn_dropdown_arw" />
    </item>
</layer-list>

Установите spinner_bg в качестве фона вашего счетчика, и он работает как заклинание:

<Spinner  
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:padding="5dp"
     android:background="@drawable/spinner_bg" />

Ответ 9

       android:layout_alignParentRight="true"
        android:layout_width="@dimen/spinner_width"
        android:layout_height="wrap_content"
        android:id="@+id/spnLocation"
        android:entries="@array/labelFamily"
        android:layout_centerVertical="true"

        android:backgroundTint="@color/color_gray"

эта работа для меня