Android修改字体_android设置字体样式

Android修改字体_android设置字体样式1.将需要添加的ttf字体文件放在frameworks/base/data/fonts/目录A:frameworks/base/data/fonts/clock_thin.ttf2.修改frameworks/base/data/fonts/Android.mk文件,将字体文件编译到system/fonts/目录中M:frameworks/base/data/fonts/Android.mkfont_src_files:=\AndroidClock.ttf\clo

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1.将需要添加的ttf字体文件放在 frameworks/base/data/fonts/ 目录

A:frameworks/base/data/fonts/clock_thin.ttf

2.修改 frameworks/base/data/fonts/Android.mk 文件,将字体文件编译到 system/fonts/ 目录中

M:frameworks/base/data/fonts/Android.mk

font_src_files := \
    AndroidClock.ttf \
    clock_thin.ttf

3.修改 frameworks/base/data/fonts/fonts.mk 文件

frameworks/base/data/fonts/fonts.mk

PRODUCT_PACKAGES := \
    DroidSansMono.ttf \
    AndroidClock.ttf \
    clock_thin.ttf \
    fonts.xml

4.在 fonts.xml 文件中定义字体对应的名称

frameworks/base/data/fonts/fonts.xml

<family name="clock-font">
    <font weight="400" style="normal">clock_thin.ttf</font>
</family>

5.使用新添加的字体

方法1:

TextView textView = new TextView(mContext);
textView.setTypeface(android.graphics.Typeface.createFromFile("/system/fonts/clock_thin.ttf"));

方法2:

<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:fontFamily="clock-font" />

6.在项目中的具体使用实例

alps/frameworks/base/core/java/android/widget/RemoteViews.java

public class RemoteViews implements Parcelable, Filter { 
   
    ...
    private class TextViewSizeAction extends Action { 
   
        ...
        @Override
        public void apply(View root, ViewGroup rootParent, OnClickHandler handler) { 
   
            final TextView target = root.findViewById(viewId);
            if (target == null) return;

            //通过特殊约定的参数(如77,0)来特殊设置TextView的字体
            if(units == -77 && size == 0f){ 
   
                target.setTypeface(android.graphics.Typeface.createFromFile("/system/fonts/clock_thin.ttf"));
            }else{ 
   
                target.setTextSize(units, size);
            }
        }
        ...
    }
    ...
}

alps/vendor/mediatek/proprietary/packages/apps/DeskClock/src/com/android/alarmclock/DigitalAppWidgetProvider.java

public class DigitalAppWidgetProvider extends AppWidgetProvider { 
   
    private static RemoteViews relayoutWidget(Context context, AppWidgetManager wm, int widgetId, Bundle options, boolean portrait) { 
   
        final String packageName = context.getPackageName();
        final RemoteViews rv = new RemoteViews(packageName, R.layout.digital_widget);
        //通过特殊约定的参数(如77,0)来特殊设置TextView的字体,这里调用setTextViewTextSize方法就会调用RemoteViews的内部类TextViewSizeAction的apply方法
        rv.setTextViewTextSize(R.id.clock, -77, 0f);
        ...
    }
    ...
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188433.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 七个合法学习黑客技术的网站,让你从萌新成为大佬「建议收藏」

    合法的学习网站,以下这些网站,虽说不上全方位的满足你的需求,但是大部分也都能。

    2022年4月15日
    169
  • openvas_openvas安装

    openvas_openvas安装简介OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。openvas安装启动

    2022年8月4日
    7
  • PKI 体系

    PKI 体系PKI简介公开密钥基础建设(英语:PublicKeyInfrastructure,缩写:PKI),又称公开密钥基础架构、公钥基础建设、公钥基础设施、公开密码匙基础建设或公钥基础架构,是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字证书。(PKI体系(一)-PKI介绍-简书)概念对称加密特点:加解密使用相同密钥,加解密过程速度快 算法:DES、3DES、AES非对称加密特点:加解密各用密钥对其中之一,密钥对公开的部

    2022年8月22日
    4
  • linux(1)Mac上传文件到Linux服务器

    linux(1)Mac上传文件到Linux服务器前言我们使用mac时,想让本地文件上传至服务器,该怎么办呢windows系统,我们可以使用xftp或者rz命令,那么mac呢?mac系统,我们可以使用sftp、scp或者rz命令,本文介绍sft

    2022年7月31日
    3
  • springboot上传文件大小限制的配置[通俗易懂]

    springboot上传文件大小限制的配置[通俗易懂]上传文件文件过大时出现如下错误:org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException:Thefieldpicexceedsitsmaximumpermittedsizeof1048576bytes.因为springboot内置tomact的的文件传输默认…

    2022年5月25日
    44
  • 基于51单片机四路循迹小车

    基于51单片机四路循迹小车这学期开设的51单片机课程的课程设计即将验收,今天开始正式着手做循迹小车~

    2022年6月23日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号