关于spinner控件有很多特殊的样式甚至是表现的很夸张的样式,这里就仅仅通过更换系统自带的xml样式来试验各种spinner样式效果。
首先在工程里创建最简单的spinner:
01 public void on Create(Bundle savedInstanceState) {
02 super.on Create(savedInstanceState);
03 // setContentView(R.layout.main);//不用xml
04
05 Spinner sp=new Spinner(this);
06
07 ArrayAdapter< String> adapter =
08 new ArrayAdapter< String>( this,
09 android.R.layout.simple_spinner_item);
10 adapter.add("red");
11 adapter.add("green");
12 adapter.add("yellow");
13 adapter.add("black");
14 adapter.add("write");
15 adapter.add("blue");
16
17 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
18
19 sp.setAdapter(adapter);
20
21 LinearLayout l=new LinearLayout(this);
22 LinearLayout.LayoutParams ll=new LinearLayout.LayoutParams(
23 LinearLayout.LayoutParams.WRAP_CONTENT,
24 LinearLayout.LayoutParams.WRAP_CONTENT
25 );
26 l.addView(sp,ll);
27
28 setContentView(l);
29
30
31
32 }
02 super.on
03 // setContentView(R.layout.main);//不用xml
04
05 Spinner sp=new Spinner(this);
06
07 ArrayAdapter< String> adapter =
08 new ArrayAdapter< String>( this,
09 android.R.layout.simple_spinner_item);
10 adapter.add("red");
11 adapter.add("green");
12 adapter.add("yellow");
13 adapter.add("black");
14 adapter.add("write");
15 adapter.add("blue");
16
17 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
18
19 sp.setAdapter(adapter);
20
21 LinearLayout l=new LinearLayout(this);
22 LinearLayout.LayoutParams ll=new LinearLayout.LayoutParams(
23 LinearLayout.LayoutParams.WRAP_CONTENT,
24 LinearLayout.LayoutParams.WRAP_CONTENT
25 );
26 l.addView(sp,ll);
27
28 setContentView(l);
29
30
31
32 }
一。ArrayAdapter< String> adapter =
new ArrayAdapter< String>( this,
android.R.layout.simple_spinner_item);
这里面的第二个参数是android.R系统自带的xml样式,我们更换这个时就会看到生成的spinner的直观样式如下:

如果换成android.R.layoutbrowser_link_context_header那么样式变为:

同理:android.R.pinner_dropdown:

android.R.preference_category:

android.R.simple_spinner_item

android.R.select_dialog_item:

android.R.select_dialog_multichoice

android.R.select_dialog_singlechoice

android.R.simple_dropdown_item_1line

android.R.simple_expandable_list_item_1

android.R.simple_gallery_item

android.R.simple_list_item_1

android.R.simple_list_item_checked

android.R.simple_list_item_multiple_choice

android.R.simple_list_item_single_choice

android.R.simple_spinner_dropdown_item

android.R.simple_spinner_item

android.R.test_list_item

然后还有自定义的spinner.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="60px"
android:layout_height="wrap_content"
android:singleLine="true"
style="?android:attr/spinnerItemStyle"
/>

接下来我们通过更换adapter.setDropDownViewResource(android.R.layout.test_list_item);
里面的xml参数来看一看弹出的样式,有些会报错不能弹出的就不提了呵呵:
android.R.browser_link_context_header对应的样式为:

preference_category对应的:

select_dialog_item:

select_dialog_multichoice:多选样式,可惜不能多选啊

select_dialog_singlechoice:

simple_dropdown_item_1line:

simple_expandable_list_item_1:

simple_gallery_item:

simple_list_item_1:

simple_list_item_checked:

simple_list_item_multiple_choice:多选按钮,没作用呵呵

simple_list_item_single_choice:

simple_spinner_dropdown_item:

simple_spinner_item:

test_list_item:
