完全自定义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!




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