我想在我的應用程序中使用外部字體。我曾嘗試使用AssetManager
添加新的fonts
,但它不起作用。下面是我的代碼:在Android中使用外部字體
Typeface face;
face = Typeface.createFromAsset(getAssets(), "font.otf");
textview.setTypeface(face);
,但它不是顯示文本...
請在這方面幫助我。
我想在我的應用程序中使用外部字體。我曾嘗試使用AssetManager
添加新的fonts
,但它不起作用。下面是我的代碼:在Android中使用外部字體
Typeface face;
face = Typeface.createFromAsset(getAssets(), "font.otf");
textview.setTypeface(face);
,但它不是顯示文本...
請在這方面幫助我。
AFAIK,Android不支持OpenType。改爲使用TrueType字體。
UPDATE:顯然OpenType字體現在支持,至少在某種程度上。它最初並未得到支持,因此您需要在您的應用將支持的任何版本的Android上徹底測試您的字體。
所以你說我在正確的方向..我只需要使用ttf文件,而不是otf ??? – mudit 2009-09-18 08:16:20
是的。鑑於你的代碼,你需要你的字體在你的資產/目錄的根目錄下,但是如果沒有兼容的字體,它應該沒問題。 – CommonsWare 2009-09-18 11:51:44
錯誤消息指示模擬器與adb或Eclipse之間的通信困難 - 它與字體無關。下載http://commonsware.com/Android/Android-src-2_1.zip,你會發現一個顯示加載TrueType字體的Android項目。另外請注意,現在Android 1.6似乎可讓您從APK外部加載字體(例如,您可以單獨下載)。 – CommonsWare 2009-09-21 16:55:26
我遇到了同樣的問題。我的字體不能在android中工作,但我需要它的工作。使用字體編輯器,我將字體從我的字體複製到Android-src-2_1的FontSampler示例附帶的字體中。它工作完美。
雖然我承認我的方法從知識產權的角度來看是有問題的,但實際上我並沒有使用原始字體,因爲所有字符都被替換了,並且所有對舊字體的引用都被替換爲好。我曾試着「查看」這兩種字體的定義方式,但是使所有的字體變量匹配也沒有效果。所以在ned中,我使用原始字體的骨架作爲新字體的模板。
Android不支持OTF(我不知道從哪個SDK版本開始,但它肯定適用於1.6版本),我在打字機OTF字體中使用了一段時間,但渲染遠沒有TTF版本I那麼精確最終使用(通過在線字體轉換器)。基準線遍佈全球(有些字母比其他字體高出2個像素),在像HTC Wildfire這樣的LDPI手機上,由於像素較大,問題大大增加。
爲了方便地訪問我們的字體,我們需要將它與我們的應用程序捆綁在一起,以便我們的代碼隨後加載它。要做到這一點,我們在你的.java類
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/BPreplay.otf");
TextView tv = (TextView) findViewById(R.id.CustomFontText);
tv.setTypeface(tf);
的Android創造我們的資產直接
一個Fonts文件夾這可能是你的.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/DefaultFontText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="Here is some text." />
<TextView
android:id="@+id/CustomFontText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="Here is some text.">
</TextView>
寫下面的代碼支持otf和ttf格式,我經歷了他們兩人。
tv3 = (TextView)findViewById(R.id.tv1);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF");
tv3.setTypeface(typeFace);
這是我用英語和當地語言
這很不錯,但是將1000多臺電視換成了他們自己定製的電視...不太方便 – 2017-04-27 11:18:18
您可以使用簡單的EasyFonts第三方庫,以各種自定義字體的設置爲您TextView
。通過使用這個庫,您不必擔心下載並將字體添加到assets/fonts文件夾中。還有關於字體對象的創建。
它提供了以下字體。
簡單:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));
..to整齊,你可以在資產/ fonts文件夾和訪問 字樣臉上的字體; face = Typeface.createFromAsset(getAssets(),「fonts /」+「font.otf」); textview.setTypeface(face); – 2017-05-31 00:09:58