Android中Spinner的构建(可调节Item中内容)

     Android中Spinner的构建(可调节Item中内容)

                                                                                             2013-05-07          21:14:44

    最近在设计一个页面中有涉及Spinner的构建以及对spinner中文字的调整,感觉比较有用。写下自己的学习过程,希望对大家有帮助。

 

1、一般Spinner的构建

   layout文件中的代码:

1 <Spinner 
2                android:id="@+id/DepartmentSpinner"
3                android:layout_width="150sp"
4                android:layout_height="50sp"
5                android:entries="@array/department"
6                android:scrollbars="vertical"
7                android:background="#B0C4DE"/>

  department.xml中的代码:

1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3     <string-array name="department">
4         <item>请选择部门</item>
5         <item>局长室</item>
6         <item >公会</item>
7         <item >办公室</item>
8    </string-array>
9 </resources>

      通过以上方法构建的Spinner,直接在View中调用,显示的效果不佳。如,字体的大小、颜色不能调节。通过在网上的查询,我找到了另一种更为方便的方法。

 

2、修改控件Spinner内容的字体大小 颜色等属性

实现代码如下:

 1 public class MainActivity extends Activity {  
 2     String[] numbers = { "请选择部门", "局长室", "公会", "办公室"}
 3       
 4     @Override  
 5     public void onCreate(Bundle savedInstanceState) {  
 6         super.onCreate(savedInstanceState);  
 7         setContentView(R.layout.activity_main);  
 8         Spinner spinner = (Spinner) findViewById(R.id.spinner);  
 9         SpinnerAdapter adapter = new SpinnerAdapter(this,  
10                 android.R.layout.simple_spinner_item, numbers);  
11         spinner.setAdapter(adapter);  
12     }  
13       
14     private class SpinnerAdapter extends ArrayAdapter<String> {  
15         Context context;  
16         String[] items = new String[] {};  
17       
18         public SpinnerAdapter(final Context context,  
19                 final int textViewResourceId, final String[] objects) {  
20             super(context, textViewResourceId, objects);  
21             this.items = objects;  
22             this.context = context;  
23         }  
24       
25         @Override  
26         public View getDropDownView(int position, View  
27                                  convertView,  ViewGroup parent) {        
28             if (convertView == null) {  
29             LayoutInflater inflater = LayoutInflater.from(context);  
30             convertView = inflater.inflate(  
31             android.R.layout.simple_spinner_item, parent, false);  
32             }  
33       
34             TextView tv = (TextView) convertView  
35                     .findViewById(android.R.id.text1);  
36             tv.setText(items[position]);  
37             tv.setTextColor(Color.BLUE);  
38             tv.setTextSize(18);  
39             return convertView;  
40         }  
41       
42         @Override  
43         public View getView(int position, View convertView,  
44                                              ViewGroup parent) {  
45             if (convertView == null) {  
46             LayoutInflater inflater = LayoutInflater.from(context);  
47             convertView = inflater.inflate(  
48             android.R.layout.simple_spinner_item, parent, false);  
49             }  
50       
51       
52             TextView tv = (TextView) convertView  
53                     .findViewById(android.R.id.text1);  
54             tv.setText(items[position]);  
55             tv.setTextColor(Color.BLUE);  
56             tv.setTextSize(18);  
57             return convertView;  
58         }  
59     }
60 }

SpinnerAdapter继承了ArrayAdapter,他必须压重构两个方法getDropDownView()和GetView()


通过上面的代码可以实现如下效果:

                              

 

                    

 
posted @ 2013-05-07 21:09  蠢驴  阅读(650)  评论(0)    收藏  举报