首页 » Android » Android O XML中使用字体

Android O XML中使用字体

原文 http://blog.csdn.net/mhw828/article/details/79248942

2018-02-04 02:00:52阅读(603)

Android O XML中使用字体

2017/9/25 20:14:35

Android 8.0 推出一项新功能,即 XML 中的字体,允许您使用字体作为资源。这意味着,不再需要以资产的形式捆绑字体。字体在 R 文件中编译,并且作为一种资源,可自动用于系统。然后,您可以利用一种新的资源类型 font 来访问这些字体。

在运行 API 版本 14 及更高版本的设备中,支持库 26 对此功能提供完全支持。(来自官方文档)

效果

Android O XML中使用字体

实现步骤 在res下新建font文件夹

Android O XML中使用字体

在font文件夹中添加字体

Android O XML中使用字体

在XML布局中引用(@font)
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="@font/aayuanqimanman"
    android:text="床前明月光,疑是地上霜。
                  举头望明月,低头思故乡。"
    android:textSize="28sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
还可以定义一组字体文件设定样式

在font文件夹下新建资源文件

Android O XML中使用字体

Android O XML中使用字体

资源文件
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font
        android:font="@font/aayuanqimanman"
        android:fontStyle="normal"
        android:fontWeight="100" />
    <font
        android:font="@font/aayuanqimanman"
        android:fontStyle="italic"
        android:fontWeight="100" />
</font-family>

android:fontStyle 两个属性

normal(正常)

italic(斜体)

可以在面板中选择操作字体属性

Android O XML中使用字体

style.xml 设置
<style name="myfontstyle" parent="@android:style/TextAppearance.Small">
    <item name="android:fontFamily" tools:targetApi="jelly_bean">@font/a_font</item>
</style>
编程操作

只用getFont()方法获取字体资源标识

使用setTypeface()设置字体

Typeface typeface = getResources().getFont(R.font.a_font);
tv_1.setTypeface(typeface);
为了兼容低版本必须声明两组属性
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:app="http://schemas.android.com/apk/res-auto">
    <font android:fontStyle="normal" android:fontWeight="400" android:font="@font/myfont-Regular"
          app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/>
    <font android:fontStyle="italic" android:fontWeight="400" android:font="@font/myfont-Italic"
          app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" />
</font-family>

检索字体资源使用

ResourcesCompat.getFont()

Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹