參考網址: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!