2013-10-06 55 views
0

我想使用Roboto字體作爲我應用中每個TextViews,EditTexts,Buttons等的默認字體。如何定義使用自定義字體的樣式

我已經把ttf文件放在資產文件夾裏的字體文件夾中。現在我想編輯應用程序樣式,以便使用該字體。 所以,這就是我所做的。

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:typeface">ROBOTO-REGULAR.TTF</item> 
</style> 

但編譯器返回這個錯誤。

String types not allowed (at 'android:typeface' with value 'ROBOTO- 
REGULAR.TTF'). 

是否可以通過XML定義應用程序的默認字體?在這種情況下,什麼是錯的? 預先感謝您。

+0

這可能有助於http://www.gadgetsaint.com/android/custom-fonts-textview-edittext-android/#.WNive2996Hs – ASP

回答

4

你不能按照你想要的方式去做。 android:typeface屬性是枚舉並具有固定數量的值。它不需要文件名。

什麼你可以要做的就是實現一個自定義TextView(加上從它們各自的類定製ButtonEditText繼承)讀取自定義屬性,並加載字體文件的屬性點。

請記住,Roboto是用來從Honeycomb開始使用的(或者是ICS?)。它在舊設備上看起來有些不合適,Droid Sans是系統級的默認設備。

+0

謝謝。所以你建議保持默認字體正確?順便說一句,它應該來自ICS +。 –

+1

嗯,真的取決於你的設計。最好在應用程序和框架中保持一致。另一方面,如果您正在支持全息風格的小工具,那些與Roboto以外的其他任何東西都很奇怪。這是一個判斷的呼聲,但我的經驗法則是,'用戶看到過這樣的事情嗎?'如果答案是否定的,我必須有一個很好的理由去做。 – Delyan

+0

嗨Delyan,我建立了自定義的textview和按鈕,因爲你建議,但這些自定義視圖不顯示爲粗體,如果我從xml文件設置其textStyle。我知道這個問題已關閉,但仍然如果你可以建議某種方式來實現這個 – silwar