Android:设置微调器背景后向下箭头消失
Android: Down arrow disappears after setting spinner background
我有一个矩形框,我将微调器背景设置为,但我想保留微调器附带的向下箭头。这是我的矩形代码:
<?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" />
见下图:
左边是我目前拥有的,右边是我正在努力实现的,或者至少在某处有一个向下箭头。关于如何创建此背景有什么想法吗?
我在 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>
结果:
位图周围当然没有边框。您可以查看此 link How to change the spinner background design and color for android? 并查看它是否符合您的要求
检查下面的 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>
在代码中添加的占位符图像中使用所需的可绘制对象。
希望对您有所帮助,
祝你好运
我有一个矩形框,我将微调器背景设置为,但我想保留微调器附带的向下箭头。这是我的矩形代码:
<?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" />
见下图:
左边是我目前拥有的,右边是我正在努力实现的,或者至少在某处有一个向下箭头。关于如何创建此背景有什么想法吗?
我在 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>
结果:
位图周围当然没有边框。您可以查看此 link How to change the spinner background design and color for android? 并查看它是否符合您的要求
检查下面的 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>
在代码中添加的占位符图像中使用所需的可绘制对象。
希望对您有所帮助,
祝你好运