我无法在listview上设置字体,Typeface仅适用于textview。有没有办法轻松设置自定义字体?谢谢。
答案 0 :(得分:-1)
您可以为列表视图创建一个适配器,并在那里的TextView上设置字体类型。
这是一个适配器的剪辑(它在C#中,但它与Java没有太大区别):
class ParcelRecordContactAdapter : ArrayAdapter<ParcelRecordContact>
{
List<ParcelRecordContact> contacts;
public ParcelRecordContactAdapter(Context context, int textViewResourceId, List<ParcelRecordContact> contacts)
: base(context, textViewResourceId, contacts)
{
this.contacts = contacts;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
View v = convertView;
if (v == null)
{
LayoutInflater li = (LayoutInflater)this.Context.GetSystemService(Context.LayoutInflaterService);
v = li.Inflate(Resource.Layout.ListItem_SingleLine, null);
}
ParcelRecordContact contact = contacts[position];
if (contact != null)
{
/**********************************************************
* change font on tv here
**********************************************************/
TextView tv = (TextView)v.FindViewById(Resource.Id.tv_single_line_list_item_1);
if (tv != null)
{
tv.Text = "android is fu.... n"
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/DroidSansFallback.ttf");
tv.setTypeface(tf);
}
}
return v;
}
}