วิธีการตั้งค่าลูกศรดรอปดาวน์ในสปินเนอร์พร้อมพื้นหลัง

ฉันมีดรอปดาวน์ที่มีพื้นหลังสีดำ โครงร่างสีน้ำเงินของสปินเนอร์ จะใส่รูปภาพลูกศรในดรอปดาวน์ได้อย่างไร

ฉันใช้

หุ่นยนต์:พื้นหลัง="@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>

person user1619306    schedule 01.09.2014    source แหล่งที่มา


คำตอบ (1)


คุณสามารถลองสิ่งนี้

สร้างไฟล์ 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
            android:id="@+id/spinner1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/spinner_style"
            android:popupBackground="#cccccc" />
person Aniruddha    schedule 01.09.2014
comment
android:src=@drawable/spinner_ab_default_holo_dark_am นี่กำลังแสดงข้อผิดพลาด - person user1619306; 01.09.2014
comment
คุณต้องเพิ่มรูปภาพ spinner_ab_default_holo_dark_am นั้นเพื่อวาดได้ หรือเพิ่มรูปภาพใด ๆ ของคุณแทน มันควรจะเป็นแบบนั้น android:src="@drawable/yourImage" - person Aniruddha; 02.09.2014
comment
android.view.InflateException: บรรทัดไฟล์ XML ไบนารี #40: เกิดข้อผิดพลาดในการขยายคลาส android.widget.Spinner 09-02 11:59:26.366: E/AndroidRuntime(336): - person user1619306; 02.09.2014
comment
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) - person user1619306; 02.09.2014
comment
@Aniruddha: เราสามารถเปลี่ยนขนาดของ Bitmap โดยใช้ set width และ height ได้หรือไม่? - person Jayesh; 29.01.2016