具有不同背景颜色的自定义微调器,用于自定义下拉图标

时间:2017-07-19 11:59:19

标签: android android-spinner

根据要求,我正在尝试在我的应用中实现自定义微调器。请参考下图:

enter image description here

我试过的是:

  <Spinner
    android:layout_width="@dimen/quoteEntryDialogItemSpinnerWidth"
    android:layout_height="match_parent"
    style="@style/spinner_style"
    />

在style.xml中:

<style name="spinner_style" >
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:background">@drawable/gradient_spinner</item>
    <item name="android:layout_margin">10dp</item>
    <item name="android:paddingLeft">8dp</item>
    <item name="android:paddingRight">20dp</item>
    <item name="android:paddingTop">5dp</item>
    <item name="android:paddingBottom">5dp</item>
    <item name="android:popupBackground">#DFFFFFFF</item>
</style>

在drawable / gradient_spinner.xml中:

<item><layer-list>
    <item><shape>
        <gradient android:angle="90" android:endColor="#535353" android:centerColor="#484848" android:startColor="#323232" android:type="linear" />

        <stroke android:width="1dp" android:color="#000000" />

        <corners android:bottomRightRadius="4dp" android:topRightRadius="4dp" />

        <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp"  />
    </shape></item>
    <item ><bitmap android:gravity="end" android:src="@drawable/spinner_arrow" />
    </item>
</layer-list></item>

我得到的只是一个具有相同背景的微调器,类似于下拉图标。

微调器和图标的背景必须不同。我无法实现特定的设计。大多数其他设计的旋转器和下拉式锚具有相同的背景。请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试将left添加到包裹bitmap

的第二个项目中
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item><layer-list>
        <item
            ><shape android:layout_width="wrap_content">
            <gradient android:angle="90" android:endColor="#535353" android:centerColor="#484848" android:startColor="#323232" android:type="linear" />

            <stroke android:width="1dp" android:color="#000000" />

            <corners android:bottomRightRadius="4dp" android:topRightRadius="4dp" />

            <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp"  />
        </shape></item>
        <item
            android:left="130dp"
            >
            <bitmap  android:gravity="end" android:src="@drawable/spinner_arrow" />
        </item>
    </layer-list></item>
</selector>

如果您仍想尝试按照自己的方式执行此操作。

另一个不错的选择是像GAGAN建议的那样做,即制作一个9patch图像,其中箭头的大小是固定的,左边的部分是可调整大小的。

答案 1 :(得分:0)

在xml文件的spinner标签中, 设置

android:background="@drawable/ic_dropdown"

和ic_dropdown可以是你的png文件。