2014-10-08 61 views
0

我有一個只包含一個字母的TextView。文本的大小經過校準,以便字母佔據整個TextView區域。現在我的一位用戶報告了一個問題,即該信件不適合放入TextView中。從附件截圖中我可以看出她在她的Samsung S4設備上使用了某種自定義字體。我相信這是問題所在。下面是一些快照:在一個TextViewTextView中的字體問題

自定義字體過的ImageView:在狀態欄中

Custom font example on TextView

自定義字體:

Custom font example in the Status Bar

扭曲的字母N在我的TextView:

Distorted N letter on TextView

有沒有什麼辦法可以讓TextView使用標準的android字體來忽略用戶應用的任何自定義字體?如何在模擬器或索尼手機(不具備三星)上安裝自定義字體並複製該行爲?

回答

0

是的您可以爲您的應用程序設置自定義字體。使用TypeFace類。

  1. 創建一個資產文件夾下名爲字體文件夾,並把它所有的字體(字體格式TTC或TTF,文件夾名稱可以是任何東西)
  2. 在你onCreate方法添加下面的代碼。

    TextView mytextview= (TextView) findViewById(R.id.text_view_id); 
    
    // Loading Font Face. Replace with your font file name 
    Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/your_custom_font.ttf"); 
    
    // Applying font 
    mytextview.setTypeface(tf); 
    
  3. 你可以有很多,你需要的字體,還可以使用相同的字體相似的方式宣佈爲TextView的你想要的。

教程下面非常好解釋你的要求,也提供了更好的援助截圖http://www.androidhive.info/2012/02/android-using-external-fonts/

另請注意,TypeFace有很多其他選項可供您使用。你可以參考android文檔來了解它們。

我希望它對你有所幫助。

謝謝!

0

我的建議:

  1. 創建您的資源文件夾的子文件夾名爲字體。
  2. 把那些你想使用的字體(例如ttc或ttf)設置爲你的TextView字體的 。例如:

    yourTextView.setTypeface(Typeface.createFromAsset(getContext()。getAssets(),「fonts/yourFont.ttc」));

我希望它有幫助!