完全自定義spinner

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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章