spinner改变字体颜色,大小等

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

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


复制代码
 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                  });
复制代码

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

 看下面的XML.



 1  <? xml version="1.0" encoding="utf-8" ?>
 2  <!--
 3  /* //device/apps/common/assets/res/any/layout/simple_spinner_item.xml
 4  **
 5  ** Copyright 2008, The Android Open Source Project
 6  **
 7  ** Licensed under the Apache License, Version 2.0 (the "License"); 
 8  ** you may not use this file except in compliance with the License. 
 9  ** You may obtain a copy of the License at 
10  **
11  **     http://www.apache.org/licenses/LICENSE-2.0 
12  **
13  ** Unless required by applicable law or agreed to in writing, software 
14  ** distributed under the License is distributed on an "AS IS" BASIS, 
15  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
16  ** See the License for the specific language governing permissions and 
17  ** limitations under the License.
18  */
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"   />
复制代码

里面实际上是一个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  /* //device/apps/common/assets/res/any/layout/simple_spinner_item.xml
 4  **
 5  ** Copyright 2008, The Android Open Source Project
 6  **
 7  ** Licensed under the Apache License, Version 2.0 (the "License"); 
 8  ** you may not use this file except in compliance with the License. 
 9  ** You may obtain a copy of the License at 
10  **
11  **     http://www.apache.org/licenses/LICENSE-2.0 
12  **
13  ** Unless required by applicable law or agreed to in writing, software 
14  ** distributed under the License is distributed on an "AS IS" BASIS, 
15  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
16  ** See the License for the specific language governing permissions and 
17  ** limitations under the License.
18  */
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"   />
复制代码

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

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

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值