本文主要是介绍修改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系统字体大小的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!