我想在Android中改变Spinner的外观,并希望它在所有设备上都是相同的。我尝试了相同的操作,但未能成功。如果我使用标签,我无法自定义它。我添加了一个屏幕截图,展示了我想要的外观:http://prntscr.com/gb3oh9。
尝试像这样做:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<layer-list>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/white" />
<stroke android:width="2px" android:color="@color/darkgray_7" />
<corners android:radius="5dp" />
</shape>
</item>
<item>
<bitmap
android:gravity="right" android:src="@drawable/arrow" />
</item>
</layer-list>
</item>
</selector>
尝试使用以下代码自定义“Spinner”:
<?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:startColor="@color/white" android:endColor="@color/appblue" />
<stroke android:width="1dp" android:color="@color/block" />
<corners android:radius="4dp" />
<padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
</shape></item>
<item ><bitmap android:gravity="right|center" android:src="@drawable/drop_arrow" android:tint="@color/red" />
</item>
</layer-list></item>
</selector>
您可以通过以下方式更改背景颜色和下拉图标:
步骤1:在drawable文件夹中创建background.xml以用于spinner的边框。
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent" />
<corners android:radius="5dp" />
<stroke
android:width="1dp"
android:color="@color/darkGray" />
</shape> //edited
步骤2:进行布局设计
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="3dp"
android:layout_weight=".28"
android:background="@drawable/spinner_border"
android:orientation="horizontal">
<Spinner
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:gravity="center"
android:layout_marginLeft="5dp"
android:spinnerMode="dropdown" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:src="@mipmap/drop" />
</RelativeLayout>
步骤示例:对于下拉箭头(样式)的微调,您可以尝试使用以下样式将其应用于您的微调器:dropdown
。style="@style/SpinnerTheme"
//Spinner样式:
<style name="SpinnerTheme" parent="android:Widget.Spinner">
<item name="android:background">@drawable/backgroundg_spinner</item>
</style>
//backgorundg_spinner.xml 用你的箭头替换 arrow_down_gray
<item>
<layer-list>
<item>
<shape>
<gradient android:angle="90" android:endColor="#ffffff" android:startColor="#ffffff" android:type="linear" />
<stroke android:width="0.33dp" android:color="#0fb1fa" />
<corners android:radius="0dp" />
<padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
</shape>
</item>
<item android:right="5dp">
<bitmap android:gravity="center_vertical|right" android:src="@drawable/arrow_down_gray" />
</item>
</layer-list>
</item>
最后只需找到你特定的ColorCode并将其附加。这里
希望能有所帮助...
这是我是如何做到的(RTL Spinner):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<layer-list>
<item android:drawable="@drawable/ic_down_white" android:gravity="left|center" />
<item>
<shape>
<corners android:radius="4dp" />
<solid android:color="#19FFFFFF" />
</shape>
</item>
</layer-list>
</item>
</select