Android 8.0 新特性(二)
来源:互联网 发布:python自动登录网页 编辑:程序博客网 时间:2024/05/23 07:23
android oreo
原文地址:Fonts in XML
Android 8.0(API 26)引入了一个新特性,即XML中的字体,可以将字体作为资源使用。可以将字体文件添加到res/font文件夹中,以作为字体资源。这些字体作为R文件进行编译,并可在Android Studio中自动使用它。通过新的资源类型 - font,可以访问字体资源。例如,要访问字体资源,可以使用@font/myfont或者R.font.myfont。
Support 26支持该特性,Android API的最低版本为14.
要将字体添加为资源,在Android Studio中按照以下步骤执行:
- 右键单击res文件夹,然后点击 New > Android resource directory,将显示”New Resource Directory”窗口
在Resource type(资源类型)列表中,选择font(字体),然后单击”ok”。
注意:资源目录的名称必须是font。
在字体文件夹中添加字体文件
下面的文件夹结构生成R.font.dancing_script,R.font.lobster和R.font.typo_graphica
双击字体文件,在编辑器中预览文件的字体
创建一个font_family
font_family是一组字体文件及其样式和重量详情。在Android中,可以创建一个新的font_family作为XML资源,并将其作为一个单独的资源来访问,而不是将每个样式和重量作为单独的资源引用。通过这样做,系统可以根据想要使用的文本样式来选择正确的字体。
要创建一个字体系列,在Android Studio中按照以下步骤执行:
右键单击font文件夹,然后转到New > Font resource file,将会显示New Resource File窗口
- 输入文件名称,然后点击ok
在元素中附加每个字体文件的样式和权重属性。以下XML说明了在字体资源XML中,添加与字体有关的属性:
在XML布局中使用字体
在TextView或样式中使用单个字体文件或font familay中的字体。使用fontFamily属性,将字体添加到TextView或样式中。
注意:当使用font familay时,TextView会根据需要自行切换使用font familay的字体。
将字体添加到TextView
要设置TextView的字体,可以这么做:
在布局XML文件中,将fontFamily属性设置为要访问的字体文件。
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/lobster"/>
打开”Attribute”窗口设置TextView的字体。
- 点开TextView的”Attribute”窗口
展开textAppearance属性,然后从fontFamily列表中选择字体
在下图中, 最右边的窗格中显示的Android Studio布局预览,可以预览TextView中设置的字体
将style中字体
打开styles.xml,并将fontFamily属性设置为要访问的字体文件。
<style name="customfontstyle" parent="@android:style/TextAppearance.Small"> <item name="android:fontFamily">@font/lobster</item></style>
以编程方式使用字体
要以编程方式检索字体,请调用getFont()方法,并提供要检索的字体的资源标识符。此方法返回一个Typeface对象。虽然系统可以从字体信息中选择最佳风格,但可以使用setTypeface(android.graphics.Typeface,int)方法设置具有特定样式的字体。
Typeface typeface = getResources().getFont(R.font.myfont);textView.setTypeface(typeface);
使用支持库
使用Support Library 26支持运行Android API 14以上版本的设备上使用该特性 - 在XML中的设置字体。
当通过支持库声明XML布局中的font_family时,应使用app命名空间,比如,app:fontStyle=”normal”。
注意:从Android Support Library 26开始,在创建font_family时时,必须声明两组属性,以确保在运行Android 8.0(API 26)或更低版本的设备上加载字体。
<?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:font="@font/myfont-Regular" android:fontStyle="normal" android:fontWeight="400" app:font="@font/myfont-Regular" app:fontStyle="normal" app:fontWeight="400" /> <font android:font="@font/myfont-Italic" android:fontStyle="italic" android:fontWeight="400" app:font="@font/myfont-Italic" app:fontStyle="italic" app:fontWeight="400" /></font-family>
要以编程方式检索字体,需调用ResourceCompat.getFont(Context,int)方法,并提供Context和资源标识符的实例。
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);
- Android 8.0 新特性(二)
- Android新特性之二
- android 8.0新特性
- Android 8.0新特性
- Android 8.0新特性
- Android 8.0 新特性
- Android 8.0新特性调研
- Android 8.0 新特性了
- Android 8.0 Oreo新特性
- Android 8.0 新特性(一)
- Android 8.0 新特性(三)
- Android 8.0 新特性(四)
- Android 8.0 Oreo 新特性
- CSS3新特性(二)
- 利用Android 2.2新特性完成缩略图(二)
- android 5.0新特性学习总结之阴影特效(二)
- android 6.0 新特性权限管理(二)
- Android O(SDK 8.0)新特性
- temp和undo常用的查询命令
- Bootstrap===辅助程序框架
- 项目管理软件的技巧和使用方法
- CUDA学习笔记 04
- Linux下全局安装composer方法
- Android 8.0 新特性(二)
- 工程师软技能6:理财人生精神
- QGC的MissionController
- 刷题——POJ 2395 Out of Hay
- CDH元数据的主从备份
- mysql查询多个字段同时满足多个条件,取并集
- DataBinding基本使用(2)
- PHP 使用SOAP调用接口开发,偶尔会报错
- 安卓 底部导航栏的封装,支持show or hidden 或者 replace 方式