Android中使用Spinner改变字体,颜色等
16lz
2021-01-25
原生的Spring 控件是无法更改字体和颜色的...
从下面的代码可以看出...红色的标注显示使用的是Android默认的布局..代码来自于Apidemo.
Spinner s1 = (Spinner) findViewById(R.id.spinner1); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.colors, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s1.setAdapter(adapter); s1.setOnItemSelectedListener( new OnItemSelectedListener() { public void onItemSelected( AdapterView<?> parent, View view, int position, long id) { showToast("Spinner1: position=" + position + " id=" + id); } public void onNothingSelected(AdapterView<?> parent) { showToast("Spinner1: unselected"); } });
通过查找源码...看到 android.R.layout.simple_spinner_dropdown_item .xml
看下面的XML
<?xml version="1.0" encoding="utf-8"?> <!-- /* //device/apps/common/assets/res/any/layout/simple_spinner_item.xml ** ** Copyright 2008, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerDropDownItemStyle" android:singleLine="true" android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:ellipsize="marquee" />
里面实际上是一个 CheckedTextView,而CheckedTextView,又继承自TextView.所以我们可以自己定义一个只有TextView的XML文件...
里面可以随意设置TextView的属性..比如字体...颜色等等.... 然后替换
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.colors, android.R.layout.simple_spinner_item);...这样就能改变字体之类的属性了...
至此...相信大家都应该能明白了吧...
更多相关文章
- android 用shape oval属性画圆环变成黑圆形解决办法
- android开发之定制标题栏 --- 附源码
- 修订:更改listView中item不同状态下的颜色
- ScrollView中的组件设置android:layout_height=fill_parent不起
- 【转】android ListView几个比较特别的属性
- Android(安卓)layer-list的属性和使用详解(阴影、边框效果)
- 整理:控件之间的冲突
- Android(安卓)LineaerLayout中layout_margin失效不起作用的解决
- 应用Style和Theme - Android官方文档中文翻译