文章目录
前言
在使用原生的Spinner时,控件里面属性设置后不能满足业务需求。
一、设置Android原生Spinner背景和图标
1.drawable目录下创建spinner_border.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 第一组item:设置边框 -->
<item>
<shape>
<!-- 设置边框线宽度和颜色 -->
<stroke
android:width="0.5dp"
android:color="#000000" >
</stroke>
<!-- 设置圆角度数 -->
<corners android:radius="5dp" />
<!-- 设置背景颜色 -->
<solid android:color="#8A8C8A" />
<!-- padding:设置边距 -->
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" >
</padding>
</shape>
</item>
<!-- 第二组item:设置spinner箭头图片(替换默认箭头) -->
<item>
<!-- bitmap.gravity:设置spinner的箭头放置位置 -->
<!-- bitmap.src:设置替换原spinner的箭头的图片资源 -->
<bitmap
android:gravity="end"
android:src="@drawable/ic_drop_down">
</bitmap>
</item>
</layer-list>
2.drawable目录下添加箭头图片资源
3.xml中添加android:background=“@drawable/spinner_border”
<Spinner
android:id="@+id/spin_iris_status"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:gravity="center"
android:textColor="@color/white"
android:textSize="22dp"
android:entries="@array/status"
android:background="@drawable/spinner_border"/>
二、使用
1.values文件夹下创建array.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="status">
<item>关闭</item>
<item>向里开</item>
<item>向外开</item>
</string-array>
</resources>
2.获取控件对象
spinStatus = (Spinner) findViewById(R.id.spin_iris_status);
3.设置监听事件
spinStatus.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String strOption = SettingActivity.this.getResources().getStringArray(R.array.status)[position];
switch (strOption){
case "关闭":
Log.d(TAG, "[onItemSelected][0]: ");
statusStr = "0";
break;
case "向里开":
Log.d(TAG, "[onItemSelected][1]: ");
statusStr = "1";
break;
case "向外开":
Log.d(TAG, "[onItemSelected][2]: ");
statusStr = "2";
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
总结
1.参考:https://www.jianshu.com/p/25121c36f753
2.参考:https://blog.csdn.net/qq_44937699/article/details/108429356