使用android系统外部字体(Use external fonts in android)

2019-07-18 02:32发布

我想在我的应用程序使用外部字体。 我曾尝试添加新fonts使用AssetManager ,但没有奏效。 下面是我的代码:

Typeface face;

face = Typeface.createFromAsset(getAssets(), "font.otf");

textview.setTypeface(face);

但它不显示文本...

请帮我解决一下这个。

Answer 1:

据我所知,Android不支持OpenType字体。 使用TrueType字体代替。


更新:显然,OpenType字体现在支持,至少在某种程度上。 这不是最初支持,所以你会希望在任何的Android版本的应用程序将支持全面测试您的字体。



Answer 2:

为了方便地访问我们的字体,我们需要用我们的方式,我们的代码可以随后加载应用程序捆绑它。 要做到这一点,我们在创造我们的资产直接一个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);


Answer 3:

Android提供支持OTF(我不是从SDK版本肯定,但它肯定与1.6的作品),我用了一段时间打字机OTF字体,但渲染远不准确与TTF版本我最终使用(通过在线字体转换器)。 基线是所有的地方(有些信件是比别人整整2个像素以上),并在LDPI手机一样的HTC野火的问题是由于大像素极大地增强。



Answer 4:

我有同样的问题。 我的字体不是在Android平台要么但我需要它的工作。 使用字体编辑器,我复制从我的字体字符成带有从Android的SRC-2_1 FontSampler例如字体。 它完美地工作。

虽然我承认,我的方法是从一个角度知识产权点怀疑,我其实没有拉闸使用原来的字体,因为所有的字符被替换,并到老字号,其中更换以及所有引用。 我曾试图“看”的两种字体被定义的方式,但让所有的字体变量的比赛也不能工作。 因此,在斯内德,我用原来的字体的骨架作为新字体的模板。



Answer 5:

Android支持两种OTF和TTF格式,我经历了他们两个。

tv3 = (TextView)findViewById(R.id.tv1);
    Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF");
    tv3.setTypeface(typeFace);

这是我用英语和当地语言步骤



Answer 6:

使用Fontinator它支持展台OTF和TTF字体

这是一个Android库可以很容易,使用自定义的字体。

https://github.com/svendvd/Fontinator



文章来源: Use external fonts in android