我在Android中创建了一个自定义微调器。在16个以上的设备中看起来像this,在16或更低的设备中看起来像this。
<Spinner
android:id="@+id/spinner"
style="@style/spinner_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/line1"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
/>
styles.xml
<style name="spinner_style" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:background">@drawable/gradient_spinner</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>
<item name="android:popupBackground">#DFFFFFFF</item>
</style>
gradient_spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<item>
<layer-list>
<item>
<shape>
<stroke android:width="1dp" android:color="#000000" />
<corners android:radius="0dp" />
<padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
</shape>
</item>
<item>
<bitmap android:gravity="bottom|right" android:src="@drawable/icon_drop" />
</item>
</layer-list>
</item>
我不明白为什么它变黑了?
答案 0 :(得分:3)
在android 16的形状中默认为黑色。将黑色替换为任何其他颜色,例如白色。要覆盖您需要添加以下内容的颜色:
<shape>
<solid android:color="@color/white"/>
....
</shape>
&#13;
因此,在gradient_spinner.xml中,您将获得以下代码:
<?xml version="1.0" encoding="utf-8"?>
<item>
<layer-list>
<item>
<shape>
<solid android:color="@color/white"/>
<stroke android:width="1dp" android:color="#000000" />
<corners android:radius="0dp" />
<padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
</shape>
</item>
<item>
<bitmap android:gravity="bottom|right" android:src="@drawable/icon_drop" />
</item>
</layer-list>
</item>
&#13;
抱歉我的英文。谢谢
答案 1 :(得分:1)
<solid android:color="#ffffff"/>
在gradient_spinner.xml上添加了这个并且工作