(spinner 字显示不完全,设置 style 后 TextView 的高度过小)
昨天写 Spinner 的时候应为客户的要求需要给 Spinner 设置 style,来改变点击前和点击后 Spinner 的样式,添加 style 很容易
代码如下:
<!-- spinner --> <style name="spinner_style" type="text/css"> <item name="android:background">@drawable/spinner_selector</item> <item name="android:paddingLeft">5dip</item> </style>
对应的 drawable:
<?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>
spinner_press 和 spinner 是两张.9 图片
但是这样设置之后问题出来了,如图: 最中间的那个红框,就是要显示文字的地方,但是因为高度太小,显示不完全。 有两个办法来解决:
1. 这个方法比较简单,在 xml 中写 spinner 的时候设置 padding 为 0 就可以了,但是这种做法只能修改为正常显示,如果要修改文字大小或者背景啊什么的话,这种难以实现。
2. 重写 adapter,代码如下:
private class SpinnerAdapter extends ArrayAdapter<String> { Context context; String[] items = new String[] {}; public SpinnerAdapter(final Context context, final int textViewResourceId, final String[] objects) { super(context, textViewResourceId, objects); this.items = objects; this.context = context; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { //下拉出来的文本框中的内容 if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(context); convertView = inflater.inflate(android.R.layout.simple_spinner_item, parent, false); } TextView tv = (TextView) convertView.findViewById(android.R.id.text1); tv.setText(items[position]); tv.setTextColor(Color.BLACK); tv.setTextSize(15); return convertView; } @Override public View getView(int position, View convertView, ViewGroup parent) { //显示的文本框中的内容,在这里自己写一个 xml 文件,包含一个 TextView(可以有其他的) //然后设置其中的字体的样式就可以了 if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(context); convertView = inflater.inflate(R.layout.item_spinner_text, parent, false); } TextView tv = (TextView) convertView.findViewById(R.id.spinner_text); tv.setText(items[position]); tv.setTextColor(Color.BLACK); tv.setTextSize(15); return convertView; } }
转载请注明:热爱改变生活.cn » 关于 Spinner 的字体的设置
本博客只要没有注明“转”,那么均为原创。 转载请注明链接:sumile.cn » 关于 Spinner 的字体的设置