我尝试在我的应用程序android中应用新字体,并可以从style.xml调用
例如。我的字体在assets / tahoma.ttf
style.xml
<style name="text_black_color_bold" >
<item name="android:textColor">#3E3E3E</item>
<item name="android:textStyle">bold</item>
<item name="android:typeface"></item> /* call new font here */
</style>
答案 0 :(得分:1)
您无法从xml中包含它。您必须通过以下代码执行此操作:
final TextView myTextView = getTextView();
final AssetManager assets = ctx.getAssets();
final Typeface font = Typeface.createFromAsset(assets, "thamoa.ttf");
setTypeface(font);
一个很好的技巧是扩展TextView并在运行时自动应用字体。
public class CustomTextView extends TextView {
public CustomTextView(Context ctx) {
super(ctx);
setupText(ctx);
}
public CustomTextView(Context ctx, AttributeSet attrs) {
super(ctx, attrs);
setupText(ctx);
}
public CustomTextView(Context ctx, AttributeSet attrs, int defStyle) {
super(ctx, attrs, defStyle);
setupText(ctx);
}
private void setupText(Context ctx) {
// check if in edit mode and return. Fonts can't be applied when viewing from editor
if(isInEditMode()) {
return;
}
final AssetManager assets = ctx.getAssets();
final TypeFace font = Typeface.createFromAsset(assets, "thamoa.ttf");
setTypeface(font);
}
}
然后你可以用同样的方式使用它,但是在xml:
中像这样引用它<package.containing.class.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<!-- whatever attributes that would normally apply here -->
/>
答案 1 :(得分:0)
如果您想将此自定义字体设置为整个应用程序,我认为这是您的情况,请创建一个资产目录并将您的customefont.ttf文件放在该目录中。
之后,你需要这个lib在你的成绩档案中编译它
complie'me.anwarshahriar:calligrapher:1.0'
并在主要活动
中的onCreate方法中使用它Calligrapher calligrapher = new Calligrapher(this);
calligrapher.setFont(this, "yourCustomFontHere.ttf", true);
这是最优雅的超快方式。