关于Spinner的字体的设置

无简介

(spinner字显示不完全,设置style后TextView的高度过小) 昨天写Spinner的时候应为客户的要求需要给Spinner设置style,来改变点击前和点击后Spinner的样式,添加style很容易 代码如下:

对应的drawable:

spinner_press和spinner是两张.9图片 但是这样设置之后问题出来了,如图: spinner 最中间的那个红框,就是要显示文字的地方,但是因为高度太小,显示不完全。 有两个办法来解决: 1.这个方法比较简单,在xml中写spinner的时候设置padding为0就可以了,但是这种做法只能修改为正常显示,如果要修改文字大小或者背景啊什么的话,这种难以实现。 2.重写adapter,代码如下:

private class SpinnerAdapter extends ArrayAdapter {
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;
}
}

-------------本文结束  感谢您的阅读-------------
下次一定