2016-01-21 134 views
1

我有一個矩形框,我將微調器背景設置爲,但我想保留與微調器一起出現的向下箭頭。這裏是我的矩形代碼:設置微調器背景後向下箭頭消失

<?xml version="1.0" encoding="UTF-8" ?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
<solid android:color="#ffffff" /> 
<stroke android:width="2dp" android:color="#80000000" /> 
<padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp" /> 

見下圖:

enter image description here

在左邊的是我現在有,右邊是我什麼試圖在某處達到或至少有一個向下的箭頭。有關如何創建此背景的任何想法?

回答

1

我在uiautomator的幫助下檢查了您的代碼,並且微調框下拉箭頭不顯示出背景設置。

你可以使用一個LayerList,並有一個右邊的重力位圖。現在位圖是設置爲微調器的背景的一部分。

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

</shape> 
</item> 

    <item> 
     <bitmap 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="right" 
      android:src="@mipmap/ic_launcher" /> 
    </item> 
</layer-list> 

結果:

當然有在位圖周圍沒有邊框。您可以檢查此鏈接How to change the spinner background design and color for android?,看看它是否符合你要求的

enter image description here

+0

感謝。這很好。 – user1197993

+0

@ user1197993很高興幫助。我試着查看源代碼,甚至設計微調器的樣式,使其更簡單,而不是黑客,但什麼都沒發現。如果我找到更好的替代方案,請更新帖子 – Raghunandan

+0

你知道如何改變位圖的大小嗎?它太大,並將佈局的寬度和高度設置爲某些值不起作用。 – user1197993

0

檢查下面的XML代碼來實現你所需要的。它類似於什麼Raghunandan張貼/回答,但有一些小的調整。希望這會對你有所幫助,

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

    <item> 
    <layer-list> 
     <item> 
     <shape android:thickness="2dp"> 
      <gradient android:angle = "90" android:endColor = "#ffffff" android:startColor = "#ffffff" android:type = "linear"/> 

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

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

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

     <item> 
     <rotate 
      android:fromDegrees = "90" 
      android:pivotX = "85%" 
      android:pivotY = "50%" 
      android:toDegrees = "90"> 
      <shape 
      android:shape = "line" 
      android:thickness="2dp" 
      android:top = "1dp"> 
      <stroke 
       android:color="#80000000" 
       android:width = "1dp"/> 
      </shape> 
     </rotate> 
     </item> 
     <item> 
     <bitmap 

      android:gravity = "center|right" android:src = "@drawable/abc_btn_check_to_on_mtrl_015"/> 

     </item> 
    </layer-list> 
    </item> 

</selector> 

在代碼中添加的佔位符圖像中使用所需的繪圖。

希望這會幫助你,

好運