2014-09-23 55 views
0

我需要一些關於sans-serif-light字體的說明。代碼Android的fontFamily無襯線燈

<item name="android:fontFamily">sans-serif-light</item> 

在自定義樣式以下行說<style name="custom_style"/>給出了一個錯誤如果的minSdkVersion小於16

而是直接在同一財產上一個TextView

android:fontFamily="sans-serif-light" 

給出警告如果minSdkVersion小於16.

Q1這兩種方法之間有什麼區別?

Q2如果我直接在textview(第二種方式)中設置屬性,應用程序是否與16位以下的sdk版本兼容,默認字體?

(我有安卓4.4.4只有一臺設備,並在其上用兩種方式的偉大工程)

回答

1

如果我直接在TextView中(第二路)設置該屬性將 應用程序是兼容sdk版本低於16與默認 字體?

即使您在樣式中設置了字體系列,行爲也不應該改變。差異可能是由於您的Lint的設置。

+0

這就是從邏輯上說,行爲不應該改變!但是,當我構建第二種應用時,它在我的設備上運行得非常順暢,與第一種方式相矛盾,導致構建失敗。第一種方式爲sdk <16工作嗎?如果是這樣,爲什麼呢?如果沒有,爲什麼呢? – 2014-09-23 07:47:47

+0

如果我在你身邊,我會檢查Lint設置,看看是否有某種不一致。如果你沒有發現任何錯誤,你可以通過' Blackbelt 2014-09-23 07:50:35

+0

收到。我會檢查皮棉,並在某個時間回來 – 2014-09-23 08:00:30

0

正如黑帶說的那樣,它必須是由於皮棉設置的不同造成的。

San-serif燈字體將不是在API 16下面的設備中工作。要解決此問題,您需要上傳資產中的自定義字體(.ttf文件)文件。


這裏是如何做到這一點 -

先複製的san-serif字體光.TTF文件到您的資源文件夾,您可以從here下載。該文件將包含許多字體,但您只需要san-serif光源文件。

然後在你的代碼,這樣做 -

Typeface light = Typeface.createFromAsset(getContext().getAssets(), "san-serif-light.ttf"); 
//Make sure that the font file's name is actually san-serif-light 

然後你就可以用這種方式將其設置爲一個TextView -

textview.setTypeface(light); 
+0

謝謝你的努力!我知道如何設置字體,我知道它不會在16以下。如果你能幫助我解決2個子問題,那將是非常好的。 – 2014-09-23 07:57:17

+0

嘗試檢入問題視圖以查找錯誤。這應該給你一個提示。如果你在lint錯誤中找不到它,請告訴我。 – Confuse 2014-09-23 08:03:42