2016-01-21 133 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> 

在代码中添加的占位符图像中使用所需的绘图。

希望这会帮助你,

好运