观书散遗帙,探古穷至妙。这篇文章主要讲述在android中使用外部字体相关的知识,希望能为你提供帮助。
我想在我的应用程序中使用外部字体。我尝试使用fonts
添加新的AssetManager
但它没有用。以下是我的代码:
Typeface face;
face = Typeface.createFromAsset(getAssets(), "font.otf");
textview.setTypeface(face);
但它没有显示文字......
请帮我解决一下这个。
答案AFAIK,android不支持OpenType。请改用TrueType字体。
更新:显然现在支持OpenType,至少在某种程度上支持。它最初不受支持,因此您需要在您的应用支持的任何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>
在.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中也不起作用,但我需要它才能工作。使用字体编辑器,我将字体中的字符复制到Android-src-2_1中FontSampler示例附带的字体中。它工作得很好。
虽然我承认我的方法从知识产权的角度来看是有问题的,但我实际上并没有使用原始字体,因为所有的字符都被替换了,所有对旧字体的引用也被替换了。我曾尝试“查看”两种字体的定义方式但是使所有字体变量匹配也不起作用。所以在我看来,我使用原始字体的骨架作为新字体的模板。
另一答案android支持otf和ttf格式,我经历过这两种格式。
tv3 = (TextView)findViewById(R.id.tv1);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF");
tv3.setTypeface(typeFace);
这是我用于英语和当地语言的步骤
另一答案使用Fontinator它支持展位OTF和TTF字体
这是一个Android-Library,使用自定义字体变得简单。
【在android中使用外部字体】https://github.com/svendvd/Fontinator
推荐阅读
- 适用于Android Studio的十六进制代码颜色库[关闭]
- Android - SearchView - setTypeface不可用
- android(fontFamily的有效值以及它们映射到的内容())
- AppCompatActivity的按钮文本的字体样式已更改
- 如何在Android中以编程方式向影像添加阴影( [重复])
- FFMPEG命令在设置项目的目标SDK版本29(Android Q问题)时不起作用
- Flutter Web和Firebase身份验证TypeError(无法读取未定义的属性'app')
- 如何在WordPress网站上收集访问者的反馈()
- Cloud Flare SSL破解WordPress和Joomla以及如何修复