1、准备两张图片,并做好9.png

Android <wbr>自定义 <wbr>spinner <wbr>(背景、字体颜色)

2、在drawable中定义 spinner_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true"   
        android:drawable="@drawable/spinner_press" /><!--按下时效果-->  
    <item android:state_pressed="false"   
        android:drawable="@drawable/spinner" /><!--默认效果-->   
</selector>

3、style中定义

  <!-- spinner -->
    <style name=" spinner_style">
    <item name="android:background"> @drawable/spinner_selector</item>
    <item name="android:paddingLeft">5dip</item>
    </style>

4、调用

<Spinner
    android:id="@+id/field_item_spinner_content"
    style=" @style/spinner_style"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:animationCache="true"
    android:drawSelectorOnTop="true" />

5、在layout中定义 simple_spinner_item.xml

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1"
    android:paddingLeft="5dip"
    android:paddingRight="5dip"
    android:gravity="center_vertical"
    android:textColor="#808080"
    android:singleLine="true"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />

 

6、java代码

ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, R.layout.simple_spinner_item);
String level[] = getResources().getStringArray(R.array.affair_level);//资源文件
for (int i = 0; i < level.length; i++) {
adapter.add(level[i]);
}
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);


效果图

Android <wbr>自定义 <wbr>spinner <wbr>(背景、字体颜色)

 

  

Android <wbr>自定义 <wbr>spinner <wbr>(背景、字体颜色)


自定义Spinner五步走 http://java-admin.iteye.com/blog/716957

 

在Android的UI开发中,Spinner(下拉列表)总是可以用到的,一个简单的自定义Spinner制作我们只需要记住这重要的五步,一个Spinner就可以应用而生了。

(1)新建一个Android工程,名字为SpinnerTest1。修改layout下的main.xml,添加一个Textview和一个Spinner,文件内容如下:

Xml代码

1. <? xml   version = "1.0"   encoding = "utf-8" ?>
2. < LinearLayout
3. android:id = "@+id/widget28"
4. android:layout_width = "fill_parent"
5. android:layout_height = "fill_parent"
6. android:orientation = "vertical"
7. xmlns:android = "http://schemas.android.com/apk/res/android"   >
8. < TextView
9. android:id = "@+id/TextView_Show"
10. android:layout_width = "fill_parent"
11. android:layout_height = "wrap_content"
12. android:text = "你选择的是"
13. android:textSize = "25sp" >
14. </ TextView >
15. < Spinner
16. android:id = "@+id/spinner_City"
17. android:layout_width = "fill_parent"
18. android:layout_height = "wrap_content" >
19. </ Spinner > <!-- 定义一个下拉菜单-->
20. </ LinearLayout >

Xml代码

Android Paint不同的字设置不同的颜色 android spinner设置字体颜色_java_04

1. <LinearLayout
2. android:id="@+id/widget28"
3. android:layout_width="fill_parent"
4. android:layout_height="fill_parent"
5. android:orientation="vertical"
6. xmlns:android="http://schemas.android.com/apk/res/android" >
7. <TextView
8. android:id="@+id/TextView_Show"
9. android:layout_width="fill_parent"
10. android:layout_height="wrap_content"
11. android:text="你选择的是"
12. android:textSize="25sp">
13. </TextView>
14. <Spinner
15. android:id="@+id/spinner_City"
16. android:layout_width="fill_parent"
17. android:layout_height="wrap_content">
18. </Spinner><!-- 定义一个下拉菜单-->
19. </LinearLayout>

<?xml version="1.0" encoding="utf-8"?><LinearLayout
	android:id="@+id/widget28"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical"
	xmlns:android="http://schemas.android.com/apk/res/android" >
	<TextView
		android:id="@+id/TextView_Show"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:text="你选择的是"
		android:textSize="25sp">
	</TextView>
	<Spinner
		android:id="@+id/spinner_City"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content">
	</Spinner><!-- 定义一个下拉菜单-->
</LinearLayout>

 (2)修改你的SpinnerTest1类,在这里我们就要记住五步 来自定义一个Spinner了,完整代码及五步注释如下:

Java代码

1. package
2.   
3. import
4. import
5.   
6. import
7. import
8. import
9. import
10. import
11. import
12. import
13. import
14. import
15. import
16. import
17.   
18. public   class  SpinnerTest1  extends
19. /** Called when the activity is first created. */
20. private  List<String> list =  new
21. private
22. private
23. private
24. private
25. @Override
26. public   void
27. super
28.         setContentView(R.layout.main);  
29. //第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项
30. "北京"
31. "上海"
32. "深圳"
33. "南京"
34. "重庆"
35.         myTextView = (TextView)findViewById(R.id.TextView_Show);  
36.         mySpinner = (Spinner)findViewById(R.id.spinner_City);  
37. //第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。
38. new  ArrayAdapter<String>( this
39. //第三步:为适配器设置下拉列表下拉时的菜单样式。
40.         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
41. //第四步:将适配器添加到下拉列表上
42.         mySpinner.setAdapter(adapter);  
43. //第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中
44. new
45. public   void  onItemSelected(AdapterView<?> arg0, View arg1,  int  arg2,  long
46. // TODO Auto-generated method stub
47. /* 将所选mySpinner 的值带入myTextView 中*/
48. "您选择的是:"
49. /* 将mySpinner 显示*/
50.                 arg0.setVisibility(View.VISIBLE);  
51.             }  
52. public   void
53. // TODO Auto-generated method stub
54. "NONE"
55.                 arg0.setVisibility(View.VISIBLE);  
56.             }  
57.         });  
58. /*下拉菜单弹出的内容选项触屏事件处理*/
59. new
60. public   boolean
61. // TODO Auto-generated method stub
62. /* 将mySpinner 隐藏,不隐藏也可以,看自己爱好*/
63.                 v.setVisibility(View.INVISIBLE);  
64. return   false
65.             }  
66.         });  
67. /*下拉菜单弹出的内容选项焦点改变事件处理*/
68. new
69. public   void  onFocusChange(View v,  boolean
70. // TODO Auto-generated method stub
71.             v.setVisibility(View.VISIBLE);  
72.         }  
73.         });  
74.     }  
75. }

记住这五步后,一个Spinner就Ok了,其中在为Spinner的适配器设置下拉时的菜单样式时,我们可以自定义自己的样式,如果嫌麻烦,就直接用android.R.layout的,就如下面这样。
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
效果图如下:

Android Paint不同的字设置不同的颜色 android spinner设置字体颜色_java_05