有没有办法在android lollipop中使用geomanist(自定义)字体。
但它适用于所有其他版本。
这是我的代码
在 MyApplication类
中 FontsOverride.setDefaultFont(this, "DEFAULT", "geomanist-lightnew.ttf");
FontsOverride.setDefaultFont(this, "MONOSPACE", "geomanist-lightnew.ttf");
FontsOverride.setDefaultFont(this, "SERIF", "geomanist-lightnew.ttf");
FontsOverride.setDefaultFont(this, "SANS_SERIF", "geomanist-lightnew.ttf");
public final class FontsOverride {
public static void setDefaultFont(Context context,
String staticTypefaceFieldName, String fontAssetName) {
final Typeface regular = Typeface.createFromAsset(context.getAssets(),
fontAssetName);
replaceFont(staticTypefaceFieldName, regular);
}
protected static void replaceFont(String staticTypefaceFieldName,
final Typeface newTypeface) {
try {
final Field staticField = Typeface.class
.getDeclaredField(staticTypefaceFieldName);
staticField.setAccessible(true);
staticField.set(null, newTypeface);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
由于
答案 0 :(得分:4)
我使用此Library,它可以在所有设备上运行良好
步骤: -
1)在您的gradle compile 'com.github.balrampandey19:FontOnText:0.0.1'
2)在您的资产文件夹中添加您的字体
3)然后用
替换xml中的视图<com.balram.library.FotTextView
android:id="@+id/vno_tv"
.
.
android:textSize="14sp"
app:font="regular.ttf" />
此行对于设置您想要的自定义字体app:font="regular.ttf"
您可以对Buttons
Edittext
或
如果你想使用相同的&#34;字体&#34;通过整个应用程序,您可以按照 Guide here
进行操作答案 1 :(得分:1)
问题的根本原因是字体文件编写错误,所以它 有意义的是解决方案是重新编码有问题的字体。您可以使用在线转换工具,例如 http://www.freefontconverter.com/
另一种选择是将库用于自定义字体,例如https://github.com/chrisjenx/Calligraphy
dependencies { compile 'uk.co.chrisjenx:calligraphy:2.2.0' }