在Android O中使用自定义字体

TT_123456789 2020-08-14 18:40:18 2781

将自定义字体添加到您的项目
相比之前的版本,使用Android中的自定义字体将会变得更加容易,因为自定义字体设置为在Android O中成为完全支持的资源类型。这意味着向应用程序添加自定义字体将与添加任何其他资源一样简单,如图像和文字。

Android O支持.otf(OpenType)和.ttf(TrueType)格式。有很多网站免费提供这些字体,所以花几分钟时间搜索Google,就可以找到喜欢的字体。

除此之外你还应该考虑您的应用程序的目的,内容和目标受众,因为不同的字体传达不同的消息。如果你正在设计一个应用程序来帮助人们完成纳税申报,那么如果你的受众可能会以奇怪而古怪的字体传送,你的受众可能很难认真对待你的应用程序的财务和法律建议!

找到要使用的字体后,请下载并解压缩。此时,应该检查字体的无效字符的文件名,基本上不是小写字母a-z,0-9或下划线。尝试添加任何其他字符,Android Studio会尽快引用该错误。

一旦你有你的字体文件,你需要在某个地方存储它们:

右键单击项目的app / res文件夹,然后选择New > Android resource directory
打开下拉菜单并选择font
输入font作为File name
点击ok

将您的字体文件拖放到新的res / font文件夹中。

使用您的自定义字体
你可以使用新的android:fontFamily XML属性将自定义字体应用于你的文本:

<TextView
android:text="This is some text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/doublefeature"/>


你还可以将自定义字体添加到你在应用程序中创建的任何样式:

<style name=“headlineFont" parent="@android:style/TextAppearance.Small">

@font/doublefeature


如果要以编程方式使用自定义字体,则可以使用getFont(int)方法检索自定义字体,例如:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.LinearLayout.LayoutParams;
import android.graphics.Typeface;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout linearLayout = new LinearLayout(this);
TextView ProgrammaticallyTextView = new TextView(this);
ProgrammaticallyTextView.setText("This is some text");

//Reference your custom font//

  Typeface typeface = getResources().getFont(R.font.doublefeature);
  ProgrammaticallyTextView.setTypeface(typeface);
  linearLayout.addView(ProgrammaticallyTextView);

  this.setContentView(linearLayout, new LinearLayout.LayoutParams(
          LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

}

}
创建一个字体系列
有时,您可以解压缩字体文件夹,并发现多个版本的字体相同,如斜体版本,或重量和厚度不同的字体。如果您使用相同字体的多个版本,那么您可能希望将它们分组到一个字体系列中。字体系本质上是一个专用的XML文件,您可以在其中定义字体的每个版本,以及相关联的样式和权重属性。

要创建一个字体系列:

确保您已将所有字体文件添加到项目的res / font文件夹中。
右键单击项目的res / font文件夹,然后选择新建>字体资源文件。
给这个文件一个名称,然后单击确定。
打开此XML文件并定义该字体的所有不同版本,以及其样式和权重属性,例如:
<?xml version="1.0" encoding="utf-8"?>
http://schemas.android.com/apk/res/android">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/doublefeature_regular" />

<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/doublefeature_italic" />

<font
android:fontStyle="bold"
android:fontWeight="400"
android:font="@font/doublefeature_bold" />


然后,您可以使用android:fontFamily属性引用此系列中的任何字体。例如:

android:fontFamily="@font/doublefeature_bold"
原文链接:点击这里

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
TT_123456789
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区