修改Android系统字体大小

2024-06-17 09:48

本文主要是介绍修改Android系统字体大小,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      这两天做项目需要在代码里修改android系统的字体大小,本来以为和修改系统音量亮度一样,是挺简单的一件事情,没想到其中大有文章。这是因为android没有提供我们一个方法在应用层直接修改系统字体大小。那么我是怎么完成的?简单的说就是调用framework层的函数,下面给出具体步骤:

     一、使用反射机制调用framework层的方法

 private Configuration mconfig = new Configuration();  
    
    public void setFontSize(){
        Method method;  
        try {
            Class<?> activityManagerNative = Class.forName("android.app.ActivityManagerNative");  
            try {  
                Object am = activityManagerNative.getMethod("getDefault").invoke(activityManagerNative);  
                method = am.getClass().getMethod("updatePersistentConfiguration", android.content.res.Configuration.class);
                mconfig.fontScale = 0.9f;  
                method.invoke(am,mconfig);  
                Log.e("TAG","setFontSize  success ");
            } catch (IllegalArgumentException e) {
                e.printStackTrace();  
            } catch (SecurityException e) {
                e.printStackTrace();  
            } catch (IllegalAccessException e) {
                e.printStackTrace();  
            } catch (InvocationTargetException e) {
                e.printStackTrace();  
            } catch (NoSuchMethodException e) {
                e.printStackTrace();  
            }  
              
        } catch (ClassNotFoundException e) {  
            e.printStackTrace();  
        }  
    }  

 二、在xml 文件中添加权限


<manifest xmlns:android="http://schemas.android.com/apk/res/android"

……

android:sharedUserId="android.uid.system"

……>


<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>


三,将项目进行系统签名


具体步骤是下载:platform.pk8、platform.x509.pem、signapk.jar三个文件,建议放在同一个目录下

我已经把这几个文件放到网盘下http://pan.baidu.com/s/1hsNQTxi  提取码是fy4a

准备好上述文件以后,编写一个批处理文件放在同一个目录下

批处理文件的创建很简单,先创建一个TXT文件,写好以后把后缀名改为.bat就可以了

批处理文件中写以下内容:

va -jar signapk.jar platform.x509.pem platform.pk8  原文件名.apk 目标文件名.apk
adb remount
adb push MyDemo_signed.apk  /system/app
pause

批处理文件的名字随便取


运行批处理文件后,我们的程序就自动运行在设备上了。

这里要注意,只有在debug模式下我们才能这样处理。


对了,这里提一句,系统签名并且运行的时候,一定要把项目里的so文件全部push到系统app文件夹下啊

这篇关于修改Android系统字体大小的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1069113

相关文章

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓