2012-03-02 64 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