2013-07-10 86 views
2

我正在開發適用於Android的自定義軟鍵盤。問題是我不想將我的鍵盤上的按鈕文本設置爲我的自定義字體。我也希望輸出的文字是我的自定義字體,即DroidSansFallback.ttf。基本上,我希望我的用戶能夠使用此自定義字體的鍵盤輸入。因此,用戶應該能夠使用鍵盤在所有應用程序中輸入自定義字體。我發現了一個名爲Multiling的應用程序,它可以做同樣的事情。如何在Android自定義軟鍵盤中設置自定義字體,而不考慮任何應用程序

我曾嘗試以下步驟:
1.Overriden的onDraw()
2.在油漆setTypeface,3 paint.setTypeface(Typeface.createFromAsset(getContext().getAssets(),"mycustomfont.ttf"))
4. attrs.xml妥加入(但沒有字體引用提到那裏)

+0

要使用TTF無需重寫onDraw(),您可以直接從其構造函數中調用setTypeface()。 –

回答

3

要將自定義字體嵌入到您的應用程序中,您需要創建一個「assets/fonts」文件夾並將TTF文件複製到那裏。

如果你有子類的TextView,那麼你就可以直接調用這段代碼從costructor,

Typeface font = Typeface.createFromAsset(this.getContext().getAssets(), "fonts/mycustomfont.ttf"); 
setTypeface(font); 

否則,如果你想使用未做子類TTF那麼你可以按照這些步驟在Activity類中。

Typeface font = Typeface.createFromAsset(this.getContext().getAssets(), "fonts/mycustomfont.ttf"); 
TextView tv = (TextView)findViewById(res); 
tv.setTypeface(font); 

欲瞭解更多詳情,請按照this link

+0

是的,但我的問題是,如果我打開我的自定義鍵盤上的任何應用程序說例如「金山辦公室」,並寫在印地文/孟加拉語中的東西,沒有字符顯示在EditView上,因爲系統/字體中實際不存在這樣的字體文件。我想在任何地方使用我的自定義字體文件。在softkeyboard代碼庫中沒有附加這樣的TextView。在這種情況下,我應該如何通知所有應用程序使用我的字體文件而不是默認值,即「Multiling」的工作方式。 – Rajhrita