• Android 中文字体的设置方法和使用技巧


    Android TextView字体颜色等样式具体解释连接:http://blog.csdn.net/pcaxb/article/details/47341249

    1.使用字体库(自己定义字体的使用):当然假设字体库和手机的不兼容获取什么的,可能你的中文是无效的

    (1)在assets中新建文件夹fonts,把ttf字体库考到文件夹下

    (2)使用代码

    TextView view1 = (TextView) findViewById(R.id.tv1);
    Typeface tf1 = Typeface.createFromAsset(getAssets(), "fonts/DroidSerif-Bold.ttf");
    view1.setTypeface(tf1);

    (3)使用字体库的问题和解决

    问题:假设你的字体库太大(xM),就会抛java.lang.RuntimeException: native typeface cannot be made

    异常。当然抛这个异常不一定是字体库大了。

    解决:

    用到的软件
    (a)FontCreator字库浏览软件
    (b)FontSubset大字库化小字库软件
    工具下载地址:http://download.csdn.net/detail/pcaxb/8972239

    操作使用

    (a)打开FontSubset,执行FontSubsetGUI.exe
    (b)填上数据
    source font 是你的当前要切割的字体包
    new font 是你要切割后的字体
    char list 能够选你当前切割的字体包
    encodeing 选utf-8

    点击 process

    字体库的下载链接(这里的字体库是我用FontSubset压缩了的,很小):http://download.csdn.net/detail/pcaxb/8974239


    (4)Android字体系统库(了解)

    Android System Fonts(/system/fonts):
    AndroidClock.ttf
    AndroidClock_Highlight.ttf
    AndroidClock_Solid.ttf
    AndroidEmoji.ttf
    Clockopia.ttf
    DroidNaskh-Regular.ttf
    DroidNaskhUI-Regular.ttf
    DroidSans-Bold.ttf
    DroidSans.ttf
    DroidSansArmenian.ttf
    DroidSansEthiopic-Regular.ttf
    DroidSansFallback.ttf
    DroidSansGeorgian.ttf
    DroidSansHebrew-Bold.ttf
    DroidSansHebrew-Regular.ttf
    DroidSansMono.ttf
    DroidSerif-Bold.ttf
    DroidSerif-BoldItalic.ttf
    DroidSerif-Italic.ttf
    DroidSerif-Regular.ttf
    MTLmr3m.ttf
    Roboto-Bold.ttf
    Roboto-BoldItalic.ttf
    Roboto-Italic.ttf
    Roboto-Light.ttf
    Roboto-LightItalic.ttf
    Roboto-Regular.ttf
    Roboto-Thin.ttf
    Roboto-ThinItalic.ttf
    RobotoCondensed-Bold.ttf
    RobotoCondensed-BoldItalic.ttf
    RobotoCondensed-Italic.ttf
    RobotoCondensed-Regular.ttf

    2.设置字体的相关属性

    (1)android:fontFamily的使用方法(有较高版本号的限制)

    相关属性:sans-serif、sans-serif-light、sans-serif-condensed、sans-serif-thin、

    (2)android:textStyle="normal|bold|italic"

    相关属性Regular、Italic、、Bold、Bold-italic、Light、Light-italic、Thin、Thin-italic、Condensed regular、Condensed italic、Condensed bold、Condensed bold-italic
    android:textStyle="bold"能够将英文设置成粗体, 可是不能将中文设置成粗体。


    代码设置

    TextView tv = (TextView)findViewById(R.id.TextView01);
    tv.getPaint().setFakeBoldText(true);//使用TextPaint的仿粗体设置setFakeBoldText为true

    (3)android:fontFamily与 android:typeface

    相关属性:normal、sans、serif、monospace
    參考链接:
    http://developer.android.com/reference/android/widget/TextView.html#attr_android%3atypeface
    http://stackoverflow.com/questions/12128331/how-to-change-fontfamily-of-textview-in-android

    3.通过HTML标签设置字体(注意有些标签是没有效果的):

    Button btn = (Button) findViewById(R.id.bt);
    String source =  "这仅仅是一个測试字符串,測试<b>黑体字</b>、<i>斜体字</i>、<u>下划线</u>、<font color='red' face='微软雅黑'>红色字</font>的显示。<font face='幼圆' size='1' color='green'>幼圆一号绿色字体</font>" +
            "<font face='宋体'>字体</font>" +
            "<font face='微软雅黑'>字体</font>" +
            "<font face='宋体'>nishiwode</font>" +
            "<font face='微软雅黑'>nishiwode</font>";
    btn.setText(Html.fromHtml(source));        
    btn.setOnFocusChangeListener(this);

    4.通过以下这样的方式的没有什么效果

    Typeface tf1 = Typeface.create("宋体", Typeface.NORMAL);
    Typeface tf1 = Typeface.create("sans-serif", Typeface.NORMAL);
           
  • 相关阅读:
    IT之光
    个人作业3——个人总结(Alpha阶段)
    结对编程2——单元测试
    个人作业2
    结对作业1
    个人作业1
    个人作业3——个人总结(Alpha阶段)
    结对编程2--单元测试
    个人作业2——英语学习APP案例分析
    结对编程1
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6943288.html
Copyright © 2020-2023  润新知