Spinner很多都不太合用,需要自定义背景等:
1、准备两张图片,最好做成9.png
![]()
![]()
2、在drawable中定义spinner_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true"
android:drawable="@drawable/spinner_press" /><!--按下时效果-->
<item android:state_pressed="false"
android:drawable="@drawable/spinner" /><!--默认效果-->
</selector>
3、style中定义
<!-- spinner -->
<style name="spinner_style">
<item name="android:background">@drawable/spinner_selector</item>
<item name="android:paddingLeft">5dip</item>
</style>
4、调用
<Spinner
android:id="@+id/spinner"
style="@style/spinner_style"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:animationCache="true"
android:drawSelectorOnTop="true"
android:overlapAnchor=”false”
android:spinnerMode=”dropdown”
/>
5、在layout中定义simple_spinner_item.xml
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:gravity="center_vertical"
android:textColor="#808080"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
6、java代码
Spinner spinner = (Spinner) findViewById(R.id.spinner);
//数据
ArrayList<String> dataList = new ArrayList<String>();
dataList.add("北京");
dataList.add("上海");
dataList.add("广州");
dataList.add("深圳");
//适配器
ArrayAdapter<String> arrayAdapter= new ArrayAdapter<String>(this, R.layout.my_simple_spinner_item, dataList);
//设置样式
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//加载适配器
spinner.setAdapter(arrayAdapter);
效果图

问题:这个方式没有实现三角按键旋转功能,还需要摸索一下
备注:下拉框遮挡住了Spinner的显示框,需要设置如下:
android:overlapAnchor=”false”
android:spinnerMode=”dropdown”
另外,多个下拉框使用popdownmenu
本文详细介绍如何自定义Android中Spinner的背景、状态效果及下拉菜单样式,包括准备资源图片、定义选择器、设置样式及调整布局,以实现更美观的交互效果。
3882

被折叠的 条评论
为什么被折叠?



