参考网址:http://www.cnblogs.com/coding-way/p/3549865.html
Android spinner是一个使用比较多的view,这里说下如何自定义(其实很简单,一些网上的参考资料让人看了有点费解)。
要改的主要涉及两个部分,一部分是用来点击的按钮,第二部分是用来选择的区域。
第一部分的更改,只要直接修改spinner的background就可以了。
eg:
< Spinner
android:id= "@+id/spinner"
android:layout_width= "match_parent"
android:layout_height= "wrap_content"
android:background= "#ffffff"
/>
效果:
第二部分更改,在代码中使用spinner中的时候,也是通过Adapter模式。
Spinner spinner = (Spinner)findViewById(R.id.
spinner
);
String[] arr = {
"三牌楼"
,
"仙林"
,
"锁金村"
,
"扬州"
};
ArrayAdapter arrayAdapter =
new
ArrayAdapter(MainActivity.
this
, android.R.layout.
simple_spinner_item
, arr);
spinner.setAdapter(arrayAdapter);
更改方法:新建ArrayAdapter的时候,第二个参数的Resource文件不再使用系统自带的
android.R.layout.simple_spinner_item,改用自定义的
R.layout.my_spinner_item,
在自定义的
R.layout.my_spinner_item
中填充自己想要的view及其效果。
eg:
Spinner spinner = (Spinner)findViewById(R.id. spinner);
String[] arr = { "三牌楼", "仙林" , "锁金村" , "扬州" };
//ArrayAdapter arrayAdapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_spinner_item, arr);
ArrayAdapter arrayAdapter = new ArrayAdapter(MainActivity.this, R.layout.my_spinner_item, arr);
spinner.setAdapter(arrayAdapter);
<? xml version= "1.0" encoding= "utf-8" ?>
< TextView xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width= "match_parent"
android:layout_height= "40dp"
android:gravity= "center_vertical"
android:textColor= "#ff0000"
>
</ TextView>
可以看到填充了红色的TextView。
实际效果:
也可以在自定义的
R.layout.my_spinner_item
中填充CheckedTextView ImageView等都是没问题的。
ctrlz + presents!