如何设置带有背景色的Spinner下拉箭头?

3
我有一个黑色背景、蓝色旋转器轮廓的下拉菜单,如何在其中放置箭头图像?
我正在使用
android:background="@android:drawable/btn_dropdown"
但这会删除我的当前背景,即黑色背景和蓝色轮廓。因此我使用了可绘制对象。
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape= "rectangle"  >
    <solid android:color="#000000"/>
    <stroke android:width="2dp"  android:color="#405999"/>
</shape>
1个回答

9
您可以尝试这个,
在drawable文件夹中创建spinner_bg.xml文件,然后复制并粘贴以下内容: spinner_bg.xml
<?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="1dp" android:color="#504a4b" />

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

                    <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
                </shape></item>
            <item ><bitmap android:gravity="bottom|right" android:src="@drawable/spinner_ab_default_holo_dark_am" />
            </item>
        </layer-list></item>

</selector>  

values 文件夹和 styles.xml 中添加以下代码行。
<style name="spinner_style" >
            <item name="android:background">@drawable/spinner_bg</item>
            <item name="android:layout_marginLeft">10dp</item>
            <item name="android:layout_marginRight">10dp</item>
            <item name="android:layout_marginBottom">10dp</item>
            <item name="android:paddingLeft">8dp</item>
            <item name="android:paddingTop">5dp</item>
            <item name="android:paddingBottom">5dp</item>

        </style>

将以下样式添加到xml文件中的spinner组件中:
       <Spinner
            android:id="@+id/spinner1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/spinner_style"
            android:popupBackground="#cccccc" />

android:src="@drawable/spinner_ab_default_holo_dark_am" 这里出现了错误。 - user1619306
你需要将 spinner_ab_default_holo_dark_am 图片添加到 drawable 中。否则,可以添加任何你想要的图片替代它。应该像这样:android:src="@drawable/yourImage" - Aniruddha
android.view.InflateException: 二进制 XML 文件第40行:无法填充类 android.widget.Spinner 09-02 11:59:26.366: E/AndroidRuntime(336): - user1619306
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 09-02 11:59:26.366: E/AndroidRuntime(336): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 09-02 11:59:26.366: E/AndroidRuntime(336): 中 android.app.ActivityThread.access$1500(ActivityThread.java:117) 09-02 11:59:26.366: E/AndroidRuntime(336): 并 android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 09-02 11:59:26.366: E/AndroidRuntime(336): 在 android.os.Handler.dispatchMessage(Handler.java:99) - user1619306
@Aniruddha:我们可以使用设置宽度和高度来改变位图的大小吗? - Jayesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接