Android:ListView中的自己的字体

时间:2012-03-02 10:24:07

标签: android listview fonts

我正在尝试使用Android OS 2.3.x中的Java在listview中拥有自己的字体

阅读以下链接后,我陷入了困境:

http://developer.android.com/guide/topics/ui/themes.html http://stackoverflow.com/questions/4576441/custom-font-in-android-listview http://androidforums.com/android-lounge/143874-custom-typface-listview-row-layout.html

我不能在这里发布有用的东西。

我的主要问题是:

  • 为什么我不能使用setTypeface?
  • 更改列表视图的字体
  • 为什么我不能在我的应用程序中为所有文本定义字体而不将其再次放入每个活动中?
  • 是否有处理此问题的文档? Android SDK文档缺少大量细节,例如otf字体正在运行的版本。

我知道我必须学习很多东西,而且我已经准备好了尽可能多的关于这个主题的书籍。但经过两天的猜测和尝试,我不得不寻求帮助。

可能有人可以把我推向正确的方向;)

为了给你一个小小的想法,我试着清理一些代码:

文件:res / layout / scores.xml(来自它的片段)

<ListView
    android:id="@+id/android:list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#00000000"
    android:cacheColorHint="#00000000"
    android:transcriptMode="disabled" >
</ListView>

文件:src / notneededasinfo / ScoresActivity.java(来自它的片段)

Resources myResources = getResources();

Typeface tf = Typeface.createFromAsset(myResources.getAssets(),"fonts/searstower.ttf");
TextView tv = (TextView) findViewById(android.R.id.list);
tv.setTypeface(tf);

寻求帮助!

3 个答案:

答案 0 :(得分:1)

嗯......首先android:textStyle和setTypeface(Typeface)不是ListView的属性和函数,它来自TextView。

尝试使用本教程:http://developer.android.com/resources/tutorials/views/hello-listview.html

无论如何,您必须定义一个.xml文件,该文件在ListView中定义itens的样式。在我发布的链接之前,您可以在主题4上看到处理程序onCreate以下行:

setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));

因此,您必须在上面使用的文件list_item.xml中将ListView项定义为R.layout.list_item。在此文件list_item.xml中,您可以定义新的TextViews或EditTexts或其他内容,并为每个视图单独更改字体。

希望它对你有所帮助......

答案 1 :(得分:0)

TextView tv = (TextView) findViewById(android.R.id.list);

您需要有一个文本视图来设置字体。您缺少列表行视图。

答案 2 :(得分:0)

我对你的一个问题有答案

  

为什么我没有为我的应用程序中的所有文本定义字体   再把它放在每个活动中?

这是一个已知问题,但很容易解决。只需实现一个自定义活动类,该类扩展Activity并覆盖setContentView()方法。在此方法中,您可以获取当前视图的所有TextView并设置Typface

见这里:Add custom font for complete android application