天天看点

spinner改变字体颜色,大小等

原生的Spring 控件是无法更改字体和颜色的...

从下面的代码可以看出...红色的标注显示使用的是Android默认的布局..代码来自于Apidemo.

spinner改变字体颜色,大小等

 1   Spinner s1  =  (Spinner) findViewById(R.id.spinner1);

 2          ArrayAdapter < CharSequence >  adapter  =  ArrayAdapter.createFromResource(

 3                   this , R.array.colors, android.R.layout.simple_spinner_item);

 4          adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );

 5          s1.setAdapter(adapter);

 6          s1.setOnItemSelectedListener(

 7                   new  OnItemSelectedListener() {

 8                       public   void  onItemSelected(

 9                              AdapterView <?>  parent, View view,  int  position,  long  id) {

10                          showToast( " Spinner1: position= "   +  position  +   "  id= "   +  id);

11                      }

12 

13                       public   void  onNothingSelected(AdapterView <?>  parent) {

14                          showToast( " Spinner1: unselected " );

15                      }

16                  });

spinner改变字体颜色,大小等

通过查找源码...看到android.R.layout.simple_spinner_dropdown_item.xml

 看下面的XML.

 1  <? xml version="1.0" encoding="utf-8" ?>

 2  <!--

 3 

19  -->

20  < CheckedTextView  xmlns:android ="http://schemas.android.com/apk/res/android"  

21      android:id ="@android:id/text1"

22      style ="?android:attr/spinnerDropDownItemStyle"

23      android:singleLine ="true"

24      android:layout_width ="fill_parent"

25      android:layout_height ="?android:attr/listPreferredItemHeight"

26      android:ellipsize ="marquee"   />

spinner改变字体颜色,大小等

里面实际上是一个CheckedTextView,而CheckedTextView,又继承自TextView.所以我们可以自己定义一个只有TextView的XML文件...

里面可以随意设置TextView的属性..比如字体...颜色等等.... 然后替换adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);的xml...这样就能改变字体之类的属性了...

至此...相信大家都应该能明白了吧...

自定义的TextView可如下:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"  

    android:id="@android:id/text1"  

    android:gravity="left"  

    android:paddingLeft="8dip"  

    android:textStyle="bold"  

    android:textColor="#FFFFFF"  

    android:singleLine="true"  

    android:layout_width="match_parent"  

    android:layout_height="wrap_content"  

    android:ellipsize="marquee" /> 

 1  <? xml version="1.0" encoding="utf-8" ?>

 2  <!--

 3 

19  -->

20  < CheckedTextView  xmlns:android ="http://schemas.android.com/apk/res/android"  

21      android:id ="@android:id/text1"

22      style ="?android:attr/spinnerDropDownItemStyle"

23      android:singleLine ="true"

24      android:layout_width ="fill_parent"

25      android:layout_height ="?android:attr/listPreferredItemHeight"

26      android:ellipsize ="marquee"   />

spinner改变字体颜色,大小等

里面实际上是一个CheckedTextView,而CheckedTextView,又继承自TextView.所以我们可以自己定义一个只有TextView的XML文件...

里面可以随意设置TextView的属性..比如字体...颜色等等.... 然后替换adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);的xml...这样就能改变字体之类的属性了...

至此...相信大家都应该能明白了吧...