Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 系列 5.1使用自定義字體

Android 系列 5.1使用自定義字體

編輯:關於Android編程

5.1使用自定義字體

問題

Android設備上的字體范圍非常小。你想要更好的東西。

在資源/字體中安裝TTF或OTF版本的字體(如果需要,創建此目錄)。在代碼中,從“asset”創建一個字體並調用View的setTypeface()方法。你完成了!

討論

您可以為應用程序提供一個或多個字體。我們還沒有發現一個文檔化的方法來安裝系統范圍的字體。小心巨大的字體文件,因為他們將與您的應用程序下載,增加其大小。

您的自定義字體格式應為TTF或OTF(TrueType或OpenTypeFace,一個TTF擴展名)。您需要在項目中的資源下創建fonts子目錄,並在那裡安裝字體。

雖然可以僅使用XML引用預定義的字體,但不能使用XML引用自己的字體。這可能有一天會改變,但現在android:typeface屬性的內容模型是一個只包含正常,sans,serif和monospace的XML枚舉!因此,你必須使用代碼。

有幾個Typeface.create()方法,包括:

?create(String familyName,int style);
?create(TypeFace family,inst style);
?createFromAsset(AssetManager mgr,String path);
?createFromFile(File path);
?createFromFile(String path);
你可以看到這些應該如何工作。參數“style”就像在Java中一樣,是表示字體的類中定義的幾個常量之一,這裡是Typeface。示例5-2中的代碼使用createFromAsset()方法,因此我們不必擔心字體位置。您可以使用列表中最後兩個表單,使用絕對路徑將多個位置共享的字體提供到/ sdcard中。在這種情況下,請記住在AndroidManifest.xml文件中請求權限以讀取SD卡!
您可以使用列表中的前兩個表單創建內置字體及其變體的表示形式。
我使用了來自SoftMaker Software GmbH的好的Iceberg字體。此字體受版權保護,我沒有權限重新分發它,所以當您下載項目並要運行它,您將需要在assets / fonts / font-demo.ttf安裝一個TrueType字體文件。注意,如果字體缺失,createFromAsset()方法將返回null;在線版本的代碼提供錯誤處理。如果字體無效,Android將默認忽略它並使用內置字體。

在這個演示中,我們提供兩個文本區域,一個使用內置襯線字體,一個使用自定義字體。它們在main.xml中定義並添加了各種屬性(參見示例5-1)。

實例5-1。 XML布局與字體規范

 






例5-2顯示了源代碼。
實例5-2。 設置自定義字體

 

 

public class FontDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView v = (TextView) findViewById(R.id.FontView);
Typeface t = Typeface.createFromAsset(getAssets(),
"fonts/fontdemo.ttf");
v.setTypeface(t, Typeface.BOLD_ITALIC);
}
}

1.找到要使用您的字體的視圖。
2.從一個Typeface類的靜態create()方法創建一個Typeface對象。
3.將字體消息發送到View的setTypeface方法。
如果一切順利,運行應用程序應該如圖5-1。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved