您的位置:首页 > 其它

spinner改变字体颜色,大小等

2015-12-02 10:40 239 查看
原生的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...这样就能改变字体之类的属性了...

至此...相信大家都应该能明白了吧...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息