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