我有一个带有简单列表的微调器。我想知道我是否可以在我的微调器中替换字体的样式。或者无论如何我可以使用它来改变字体样式,大小和颜色。
非常感谢任何许可。
答案 0 :(得分:7)
未尝试过,但XML中的 android:typeface
或代码中的setTypeface()
应该有效。
编辑:请遵循指南here。
首先,在res / layout目录中创建一个名为“my_spinner_style.xml
”的新XML文件,并输入如下内容:
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="9pt"
android:singleLine="True"
android:id="@+id/spinnerTarget"
android:textColor="#000000"
android:gravity="center"/>
然后在您的代码中,使用以下内容:
Spinner mySpinner = (Spinner) findViewById(R.id.my_spinner);
mySpinnerArrayAdapter = new MyCustomArrayAdapter(this, R.layout.my_spinner_style);
mySpinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
通常你会为第二行创建一个新的ArrayAdapter,但在这种情况下你需要创建一个自定义的ArrayAdapter并覆盖从我们的自定义微调器样式中获取TextView的方法。
因此,您需要输入自定义ArrayAdapter的代码,如下所示:
private class MyArrayAdapter extends ArrayAdapter {
public MyArrayAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}
public TextView getView(int position, View convertView, ViewGroup parent) {
TextView v = (TextView) super.getView(position, convertView, parent);
v.setTypeface(myFont);
return v;
}
public TextView getDropDownView(int position, View convertView, ViewGroup parent) {
TextView v = (TextView) super.getView(position, convertView, parent);
v.setTypeface(myFont);
return v;
}
}
您要使用的字体需要驻留在assets / fonts目录中,您可以这样访问它:
Typeface myFont = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
这就是它。