修改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

相关文章

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c

android 带与不带logo的二维码生成

该代码基于ZXing项目,这个网上能下载得到。 定义的控件以及属性: public static final int SCAN_CODE = 1;private ImageView iv;private EditText et;private Button qr_btn,add_logo;private Bitmap logo,bitmap,bmp; //logo图标private st

Android多线程下载见解

通过for循环开启N个线程,这是多线程,但每次循环都new一个线程肯定很耗内存的。那可以改用线程池来。 就以我个人对多线程下载的理解是开启一个线程后: 1.通过HttpUrlConnection对象获取要下载文件的总长度 2.通过RandomAccessFile流对象在本地创建一个跟远程文件长度一样大小的空文件。 3.通过文件总长度/线程个数=得到每个线程大概要下载的量(线程块大小)。

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

高仿精仿愤怒的小鸟android版游戏源码

这是一款很完美的高仿精仿愤怒的小鸟android版游戏源码,大家可以研究一下吧、 为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。 源码下载