2012-03-02 63 views
1

我想有在Android操作系统2.3.x版本使用Java安卓:自己的字体中的ListView

阅读下面的链接后一个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 Fonts正在使用的版本。

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

Propably有人可以把我在正确的方向;)

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

文件:RES /布局/ 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); 

Thx求助!

+0

@你的代码显示一些错误?或者是什么问题? – 2012-03-02 10:28:55

+0

问题是,我没有得到任何例外或错误,并且字体没有改变。 我认为,这只是我身边的一个小问题,就像一个错字。 – MrMarco 2012-03-02 10:31:29

+0

只需将此myResources.getAssets()修改为getApplicationContext()。getAssets()并尝试。 – 2012-03-02 10:41:38

回答

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

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

0

我对你的问题一个一个的回答

为什么我不能定义字体在我的应用程序的所有文字,而不 把它在每个活动一次?

这是一个已知的问题,但容易解决。只需实现一个扩展活动并覆盖setContentView()方法的自定义活动类。在这种方法中,你可以得到你所有的TextViews为当前视图,并设置Typface

在这里看到:Add custom font for complete android application

1

嗯...首先所有Android:TEXTSTYLE和setTypeface(字体)是不是一个性质和功能来自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)); 

所以,你必须定义布局上面R.layout用在文件list_item.xml的ListView项。项目清单。在这个文件list_item.xml中,您可以定义新的TextView或EditText或任何其他内容,并为每个View单独更改字体。

希望它可以帮助你...

+1

和其他的东西......你的R.id.list是一个ListView,就像你在发布的xml代码中定义的那样。你不能像TextView那样将它与TextView相关联:TextView tv =(TextView)findViewById(android.R.id.list); – trebew 2012-03-02 10:53:55

+0

AAHH ...这可能是我的问题。我认为ListView是一个普通的小部件。但是,它只是结果线的容器......好吧......给我一些时间。我知道有一些工作要做。留言Merci! – MrMarco 2012-03-02 11:27:41

+0

我试过了,但是你不能在xml文件中设置自己的字体。您可以更改字体颜色,字体样式(粗体等)和字体大小,但不更改字体类型。 我错过了极其重要的知识。一旦我得到我想念的东西,我就回到这个问题。 – MrMarco 2012-03-02 12:19:14