Android字体设置

编程入门 行业动态 更新时间:2024-10-10 11:22:49

Android<a href=https://www.elefans.com/category/jswz/34/1770720.html style=字体设置"/>

Android字体设置

今天在看一个开源项目的时候,发现了一个可以设置字体样式的类Typeface,配合着酷炫的字体,能让UI增色不少,于是便研究一下并做了记录。

Typeface类简介

Typeface中的主要方法和变量都是静态的,类中定义了五种字体以及四种Style样式。

五种字体public static final Typeface DEFAULT;         //默认的正常字体样式   public static final Typeface DEFAULT_BOLD;    //默认的正常字体加粗样式。注意:这可能不是真的粗体,取决于安装的字体样式   public static final Typeface SANS_SERIF;      //无衬线字体的正常样式public static final Typeface SERIF;           //衬线体字体的正常样式public static final Typeface MONOSPACE;       //默认单空间字体的标准样式

五种字体样式在手机中的显示是这样的:

四种字体风格public static final int NORMAL = 0;            //普通样式public static final int BOLD = 1;              //字体加粗public static final int ITALIC = 2;            //斜体public static final int BOLD_ITALIC = 3;       //字体加粗+斜体

这四种style比较常见,理解起来肯定没问题,在就此不上图了。

设置方式

XML中设置字体
android:typeface="normal"  <!--or sans|serif|monospace -->//如果要设置字体风格
android:textStyle="normal" <!--or bold|italic-->
java代码设置字体的有两种方式:

1.一个参数

源码:public void setTypeface(Typeface tf) {if (mTextPaint.getTypeface() != tf) {mTextPaint.setTypeface(tf); //给绘制TextView的画笔,设置字体属性  if (mLayout != null) {nullLayouts();requestLayout();invalidate();}}}

第一种方式:View.setTypeface(Typeface tf)
tf: Typeface对象,把想设置的Typeface传入即可。可以传空对象,如果传空会使用默认的字体

2.两个参数

源码:public void setTypeface(Typeface tf, int style) {if (style > 0) {if (tf == null) {tf = Typeface.defaultFromStyle(style);} else {tf = Typeface.create(tf, style);}setTypeface(tf);// now compute what (if any) algorithmic styling is neededint typefaceStyle = tf != null ? tf.getStyle() : 0;int need = style & ~typefaceStyle;mTextPaint.setFakeBoldText((need & Typeface.BOLD) != 0);mTextPaint.setTextSkewX((need & Typeface.ITALIC) != 0 ? -0.25f : 0);} else {mTextPaint.setFakeBoldText(false);mTextPaint.setTextSkewX(0);setTypeface(tf);}}

第二种方式:View.setTypeface(Typeface tf, int style)
tf: Typeface对象,可以传空对象,如果传空会使用默认的字体
style :字体风格 例:Typeface.BOLD_ITALIC ——加粗斜体

引入外部字体样式

  1. 在src/main目录下创建assets文件夹,然后在assets中新建fonts目录用来放字体,字体文件有.ttf和.otf等格式,如图所示:

  2. 在代码中调用:

//实例化TextView
TextView  tv1 = (TextView) findViewById(R.id.tv1);//得到AssetManager
AssetManager manager = getAssets();//根据路径得到Typeface
Typeface tf = Typeface.createFromAsset(manager, "fonts/type_face.ttf");//设置字体
tv1.setTypeface(tf);

成功运行后如图所示,已经变成我自己down的自定义字体了。

总结

  • 使用外部字体时,加载的过程中可能因为文件的大小影响App性能;

  • 可以把加载字体放在App启动时候去加载,把Typeface设成static,使用的时候直接调用即可。

  • 关于fount文件里的字体,我们只需要添加我们用到的字体,防止文件太大,APK体积变大或加载过慢。

更多推荐

Android字体设置

本文发布于:2024-03-10 06:24:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1727218.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字体   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!