android:无法设置自定义字体
Posted
技术标签:
【中文标题】android:无法设置自定义字体【英文标题】:android: not able to set custom font 【发布时间】:2014-06-16 16:47:57 【问题描述】:我尝试在 TextView 中设置自定义字体。
因此,我将 otf 文件复制到 /src/main/assets/fonts
中,并将以下部分添加到我在 Activity 中的 onCreate 中:
TextView tv = (TextView) findViewById(R.id.profil_fullname);
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/MavenProLight-100.otf");
tv.setTypeface(tf);
但它不起作用。我没有收到任何错误,应用程序可以正常工作,但字体不是预期的字体。我必须将资产文件夹添加到我的 build.gradle 吗?!
EDIT1:
我将字体名称更改为 MavenProLight.tff(我还将它转换为 truetype 字体)。此外,我将其移至src/main/assets
并再次构建它。到目前为止没有任何变化,Logcat 不包含任何问题特定的警告或调试信息。
EDIT2: 我发现了问题!我将设计用作片段中的布局。因此 Activity 的 onCreate 永远不会被调用。查看此页面了解更多信息:Set custom font for android fragments
【问题讨论】:
Android 可能无法读取此类文件并从中创建字体。见***.com/a/1430320/1207921 将其转换为 truetype 字体 (.ttf) 同意,Android 可能由于某种原因无法读取您的字体。在 LogCat 中查找消息,可能处于调试或警告级别。 【参考方案1】:请删除 assets 文件夹的文件夹 fonts 子文件夹 并重命名 mavenProLight.otf 而不是 MavenProLight-100.otf。然后试试这个。
TextView tv = (TextView) findViewById(R.id.profil_fullname);
Typeface tf = Typeface.createFromAsset(getAssets(), "mavenProLight.otf");
tv.setTypeface(tf);
可能会得到 100% 的作品。祝你好运!
【讨论】:
所有字体和其他文件都必须在 assets 文件夹中吗?这闻起来像一团糟。【参考方案2】:问题在于您的路径 /src/main/assets/fonts 。将字体放在 assets/fonts 文件夹中,它会 wrk :)
【讨论】:
src/main/assets/fonts
非常适合 Android Studio 或 Gradle 构建。以上是关于android:无法设置自定义字体的主要内容,如果未能解决你的问题,请参考以下文章
Android开发 如何重写SimpleAdapter,自定义字体的大小?