2014-10-08 26 views
2

如果設備具有自定義字體集,則需要設置該自定義字體(如在samsung s3和其他設備中),否則我需要設置Roboto。我知道如何設置這兩種字體,但我需要檢查是否存在自定義字體集的情況。問題不在於使用createFromAssets方法進行設置。如何檢查Android設備是否具有自定義字體集

這是我用過

private static final Typeface lightTypeface = Typeface.createFromAsset(ChatApplication 
     .getContext().getAssets(), "fonts/Roboto-Light.ttf"); 

private static final Typeface mediumTypeface = Typeface.createFromAsset(ChatApplication 
     .getContext().getAssets(), "fonts/Roboto-Medium.ttf"); 

private static final Typeface boldTypeface = Typeface.createFromAsset(ChatApplication 
     .getContext().getAssets(), "fonts/Roboto-Bold.ttf"); 

private static final Typeface regularTypeface = Typeface.createFromAsset(ChatApplication 
     .getContext().getAssets(), "fonts/Roboto-Regular.ttf"); 

public static Typeface getLightTypeface() { 
    return lightTypeface; 
} 

public static Typeface getMediumTypeface() { 
    return mediumTypeface; 
} 

public static Typeface getBoldTypeface() { 
    return boldTypeface; 
} 

public static Typeface getRegularTypeface() { 
    return regularTypeface; 
} 
+0

我並不需要防止在三星設備的自定義字體的代碼。我需要保持它按照用戶的選擇,但設置爲Roboto其他設備。請幫助。我看着這個問題並沒有真正幫助 – 2014-10-08 05:30:03

+0

你有沒有試過,它不工作?對我來說,這是自動的 – 2014-10-08 06:53:08

+0

它的工作原理是當我使用typeface.DEFAULT時顯示自定義字體,但我需要使用Roboto,如上面所示,在所有其他情況下。總之,我需要做的是檢查設備是否具有自定義字體集並基於該默認返回或返回roboto。 – 2014-10-08 07:15:25

回答

0

用這種方式來設置字體爲textviews

Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-Light.ttf")); 
TextView textView = (TextView) findViewById(R.id.textView1); 
textView.setTypeface(tf); 
+0

我知道。我已經做到了。我需要檢查自定義字體是否由用戶在三星設備中設置,如果是切換到字體.DEFAULT。我的問題是我如何測試這種情況? – 2014-10-08 08:13:13

相關問題