我想在我的应用程序中使用外部字体。我尝试添加新的fonts
使用AssetManager
,但没有奏效。下面是我的代码:
Typeface face;
face = Typeface.createFromAsset(getAssets(), "font.otf");
textview.setTypeface(face);
但它没有显示文字...
请帮我解决一下这个。
我想在我的应用程序中使用外部字体。我尝试添加新的fonts
使用AssetManager
,但没有奏效。下面是我的代码:
Typeface face;
face = Typeface.createFromAsset(getAssets(), "font.otf");
textview.setTypeface(face);
但它没有显示文字...
请帮我解决一下这个。
AFAIK, Android does not support OpenType. Use a TrueType font instead.
UPDATE: Apparently OpenType is now supported, at least somewhat. It was not supported originally, so you will want to test your font thoroughly on whatever versions of Android your app will support.
为了轻松访问我们的字体,我们需要将它与我们的应用程序捆绑在一起,以便我们的代码随后可以加载它。为此,我们直接在资产中创建一个 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>
在您的 .java 类中编写以下代码
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/BPreplay.otf");
TextView tv = (TextView) findViewById(R.id.CustomFontText);
tv.setTypeface(tf);
Android确实支持OTF(我不确定哪个SDK版本,但它肯定适用于1.6),我使用打字机OTF字体有一段时间了,但渲染远没有我最终使用的TTF版本准确(通过在线字体转换器)。基线到处都是(有些字母比其他字母高出整整 2 个像素),而在 HTC Wildfire 等 LDPI 手机上,由于像素较大,该问题被大大放大。
android同时支持otf和ttf两种格式,我都体验过。
tv3 = (TextView)findViewById(R.id.tv1);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF");
tv3.setTypeface(typeFace);
这是我用于英语和当地语言的步骤
我遇到了同样的问题。我的字体也不能在 android 中工作,但我需要它才能工作。使用字体编辑器,我将字体中的字符复制到 Android-src-2_1 中的 FontSampler 示例附带的字体中。它工作得很好。
虽然我承认我的方法从知识产权的角度来看是有问题的,但我实际上并没有使用原始字体,因为所有字符都被替换了,所有对旧字体的引用也被替换了。我曾尝试“查看”这两种字体的定义方式,但使所有字体变量匹配也不起作用。所以在ned中,我使用了一个原始字体的骨架作为新字体的模板。