Android APP的字体设置

原创 2016年05月30日 19:48:53

Android系统自带有对字体的设置,这些设置是对字体的显示方式的设置,比如加粗,倾斜,下划线,字号等,但是对于字体本身,比如设置为楷体,隶书等貌似没有。Android系统只有一种默认的,如果需要修改字体,或者引用自己喜欢的字体,那么就需要自己设置或修改。
修改系统的字体可以下载修改字体的app即可,但是如果是对于开发者想在自己的app中使用具有自己个性的文字,可以按下面介绍的方法做(这里只是其中一种方法,相信,应该还有很多方法的)

·将自定义的字体所在的ttf文件copy到工程assets/fonts/目录下面
一般字体的格式为ttf的。在C:\WINDOWS\Fonts目录下有windows系统提供的字体,可以使用。也可以自己通过coreldraw+fontcreator软件自己制作字体
·在源码中进行如下修改:

TextView tv = (TextView)findViewById(R.id.c12_custom);

  //从assert中获取有资源,获得app的assert,采用getAserts(),通过给出在assert/下面的相对路径。在实际使用中,字体库可能存在于SD卡上,可以采用createFromFile()来替代createFromAsset。

Typeface face = Typeface.createFromAsset (  getAssets() , “fonts/timesi.ttf” );
  tv.setTypeface (face);

设置字体不能直接在XML文件中进行,需要通过源码来完成。
通过这两步就可以对TextView对象tv的字体进行了修改,改成自己定义的字体timesi.ttf

Android并非和所有的TTF字体都能兼容,尤其在中文特殊字体的支持会存在问题,对于不兼容的字体,Android不出报错,只是无法正常显示。
  
一些注意
  字库一般会很大,因为要将包括很多的字符集,使用其他的字库,这样就会增大程序的体积。可以使用FontCreator软件对字库进行裁剪,使其体积变小。如果字库比较大,可以考虑放在sdcard上,使用createFromFile来获得Typeface对象
有些字库可能并不会包括我们需要的字符,比如为了节省字库的体积,将中文字符取消,这样如果想使用这个字库显示中文的话,肯定是不成功的。

这里再对程序中出现的源码进行解释。
修改字体就是调用setTypeface方法。这个方法的参数是一个Typeface类对象

Typeface是字体类
这个类比较简单,这里列出它的成员方法(这些方法都是静态方法,返回Typeface对象,可以直接作为setTypeface的参数):
·static Typeface create(Typeface family, int style) //静态方法,参数一为字体类型这里是Typeface的静态定义,如宋体,参数二风格,如粗体,斜体
·static Typeface create(String familyName, int style) //静态方法,参数一为字体名的字符串,参数二为风格同上,这里我们推荐使用上面的方法。
·static Typeface createFromAsset(AssetManager mgr, String path) //静态方法,参数一为AssetManager对象,主要用于从APK的assets文件夹中取出字体,参数二为相对于Android工程下的assets文件夹中的外挂字体文件的路径。
·static Typeface createFromFile(File path) //静态方法,从文件系统构造一个字体,这里参数可以是sdcard中的某个字体文件
·static Typeface createFromFile(String path) //静态方法,从指定路径中构造字体
·static Typeface defaultFromStyle(int style) //静态方法,返回默认的字体风格

本类的常量静态定义,首先为字体类型名称
Typeface DEFAULT
Typeface DEFAULT_BOLD
Typeface MONOSPACE
Typeface SANS_SERIF
Typeface SERIF
字体风格名称
int BOLD
int BOLD_ITALIC
int ITALIC
int NORMAL
这些变量都可以通过名称知道其意思

版权声明:本文为博主原创文章,转载请注明出处。

相关文章推荐

Android 字体加载

1.      Font配置文件     位于frameworks/base/data/fonts     system_fonts.xml  fallback_fonts.xml   文件结构  ...

Android自定义控件之3D上下翻页效果的倒计时控件

这是一个自定义的倒计时控件,具有3D上下翻页翻转效果。最近项目中需要做一个倒计时控件,需要和iOS端的效果保持一样。大致效果是这样的,如下图所示: 由于暂时还不会怎么样制作gif动态图,所以想看具...

Android设置整体app字体大小

  • 2016年04月21日 15:08
  • 4MB
  • 下载

android 关于app内设置字体样式的研究

昨日, 产品经理:看着app中的文字,突然问我你这里面啥字体,是微软雅黑吗? 我:不是啊,android自带的字体啊,默认的。 产品经理:可以设置为微软雅黑吗? 我:我研究下。1.androi...

Android APP字体大小跟随系统设置

项目适配遇到的问题,在Android 4.0以上的系统当中,用户能够在系统设置对字体大小进行更改,这样一来,在自己的应用当中由于字体大小的变化会导致显示不全,布局错乱等问题的存在。这个设置直接会影响到...

Android APP的字体设置

Android APP的字体设置 Android系统自带有对字体的设置,这些设置是对字体的显示方式的设置,比如加粗,倾斜,下划线,字号等,但是对于字体本身,比如设置为楷体,隶书等貌似没有。Andro...

Android开发之设置APP全局字体

今天带来一篇和字体有关的:设置APP全局字体。 在开发的过程中可能有需求是使用某种要求的字体而不是默认字体,在使用少的情况下,我们可以选择直接设置或者自定义View,用到的时候使用自定义的TextVi...

设置Android app的字体不随系统全局字体大小的变动而变动

从android4.0起系统设置的”显示“提供设置字体大小的选项。以三星s4为例,在“设置-我的设备-显示-字体大小”中选择,可以调整系统的字体。这个设置直接会影响到所有sp为单位的字体适配,所以很多...

如何设置android app 的字体大小不受系统字体大小改变的影响

从android4.0起系统设置的”显示“提供设置字体大小的选项。这个设置直接会影响到所有sp为单位的字体适配,所以很多app在设置了系统字体后瞬间变得面目全非。下面是解决方案 [j...

设置Android app的字体不随系统全局字体大小的变动而变动

从android4.0起系统设置的”显示“提供设置字体大小的选项。以三星s4为例,在“设置-我的设备-显示-字体大小”中选择,可以调整系统的字体。这个设置直接会影响到所有sp为单位的字体适配,所以很多...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android APP的字体设置
举报原因:
原因补充:

(最多只允许输入30个字)