一个Simplecursoradaptor内自定义文本字体 [英] Custom text font inside a Simplecursoradaptor
问题描述
我已经在这里我使用SimpleCursoradapter的应用程序。
I have made an application where i use a SimpleCursoradapter.
String[] from = new String[] {"title","notes","image"};
int[] to = new int[] { R.id.esodaTextView, R.id.amountTextView, R.id.imageView1};
esodaAdapter = new SimpleCursorAdapter (this, R.layout.recipe_list_item, null, from, to);
正如你可以看到我展示三个数据在2 TextViews(esodaTextView + amountTextView);在一个ImageView的。
As you can see i show the three data at 2 TextViews (esodaTextView + amountTextView) and at one imageView.
现在的问题是如何设置自定义字体(即保存在assets文件夹),以这2 TextViews(esodaTextView + amountTextView),这样我就可以显示出使用自定义字体的文本。
这是列表项目的xml文件:
This is the xml file for the list item:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="10dp"
android:background="#55eee9e9" >
<TextView
android:id="@+id/esodaTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="20dp"
android:textColor="#000000"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical" />
<TextView
android:id="@+id/amountTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/esodaTextView"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:paddingBottom="5dp"
android:textSize="12dp" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:layout_alignParentRight="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
我知道我编程可以通过以下code设置自定义字体,但我该如何使用它Simplecursoradaptor?
I know that i can programmatically set a custom font via the following code but how can i use it inside a Simplecursoradaptor?
TextView txt1 = (TextView) findViewById(R.id.textView1);
Typeface font = Typeface.createFromAsset(getAssets(), "segoescb.ttf");
txt1.setTypeface(font);
感谢您对您的帮助提前。
Thank you for your help in advance.
推荐答案
您想要做的是覆盖SimpleCursorAdapter的的 ViewBinding :
What you want to do is overwrite the SimpleCursorAdapter's ViewBinding:
SimpleCursorAdapter.ViewBinder binding=adapter.setViewBinder( new SimpleCursorAdapter.ViewBinder()
{
boolean SetViewValue(View view, Cursor cursor, int columnIndex)
{
TextView tv=(TextView)view.findViewById(R.id.iesodaTextView)
//Do what you want here
return true;
}
});
这篇关于一个Simplecursoradaptor内自定义文本字体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!