我有一个ttf字体文件在我的资产文件夹。我知道如何使用它用于文本:
Typeface externalFont=Typeface.createFromAsset(getAssets(), "fonts/HelveticaNeueLTCom-Lt.ttf");
textview1.setTypeface(externalFont);
我已经定义寻找我的微调框文本在它自己的XML文件(作为usuall在android):
android:id="@+android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:textColor="#ffffff"
android:gravity="center"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee" />
我只是不能从代码引用此textview,我总是获得空指针异常。例如。我试过了:
TextView spinner_text=(TextView)findViewById(R.id.text1);
spinner_text.setTypeface(externalFont);
是否可以选择我的外部字体,即使我的微调文本定义在它自己的XML?
谢谢。
编辑与答案:
这工作:
String [] items = new String[2];
items[0]="Something1";
items[1]="Something2";
ArrayAdapter adapter = new ArrayAdapter(this,
R.layout.spinaca, items) {
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
Typeface externalFont=Typeface.createFromAsset(getAssets(), "fonts/HelveticaNeueLTCom-Lt.ttf");
((TextView) v).setTypeface(externalFont);
return v;
}
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View v =super.getDropDownView(position, convertView, parent);
Typeface externalFont=Typeface.createFromAsset(getAssets(), "fonts/HelveticaNeueLTCom-Lt.ttf");
((TextView) v).setTypeface(externalFont);
v.setBackgroundColor(Color.GREEN);
return v;
}
};
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
可能需要添加
import android.view.ViewGroup;
到您的文件顶部的导入列表。由于某种原因,当Eclipse不能识别代码中涉及的ViewGroup类时,不会提出这个建议。