前言
由于Android开发中部分第三方应用字体过小,用户会调整Android系统的字体大小,但由于我们应用是定制化开发的,改变字体也会影响我们应用的字体显示。
因此需求:定制化的APP内字体大小不随系统设置变化。
正文
在Activity中重写如下方法
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(getConfigurationContext(newBase));
}
private Context getConfigurationContext(Context context){
if(null== context){
return null;
}
Configuration configuration = context.getResources().getConfiguration();
//重新配置字体放大的倍数。
configuration.fontScale= 1;
return context.createConfigurationContext(configuration);
}
当然也有其他的方式,如下面的
public void setDefaultFontAndDisplay(Activity activity){
Resources resources = activity.getResources();
Configuration configuration = resources.getConfiguration();
configuration.fontScale = 1.0f;//重新配置字体放大的倍数。
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}
上面两个都可以,但我的一个项目中使用第二种,在AndroidManifest.xml配置了configChanges,如下
android:configChanges="screenSize|keyboard|keyboardHidden|layoutDirection|mcc|mnc|locale|touchscreen|orientation|locale|screenLayout|uiMode|fontScale|smallestScreenSize|navigation"
就存在问题。
事后发现,很可能是监听了[fontScale]导致的。
参考文章
历史上的今天
暂无评论...
随机推荐
无效的UTF-8字符串引发的问题
前言最近在调试多媒体时,出现特别奇怪的问题,也就是扫描磁盘中文件时被中断了,之前都是好的。记录于此,方便自己查阅。好记性不如烂笔头正文部分异常日志如下。 signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- Abort...
朱自清:背影
那年冬天,祖母死了,父亲的差使也交卸了,正是祸不单行的日子。我从北京到徐州打算跟着父亲奔丧回家。到徐州见着父亲,看见满院狼藉的东西,又想起祖母,不禁簌簌地流下眼泪。父亲说:“事已如此,不必难过,好在天无绝人之路!”回家变卖典质,父亲还了亏空;又借钱办了丧事。这些日子,家中光景很是惨淡,一半为了丧事...
林夕:赏味期限
那还是你和好友说着想要去很多很多地方的年纪。你踢踢踏踏地在走廊里面一边走一边数着自己到底想去多少个地方,好友跟在你的后面臭着一张脸喊,好高骛远的家伙,离开这里看谁天天陪你。你转身去拉她的手,笑得相当谄媚,说你可以陪我一起去呀。好友摇着手告诉你去去去,先把英文考及格了再说吧。所谓好友到底可以好成...
[摘]深入浅出UML类图(三)
本文作者:刘伟 http://blog.csdn.net/lovelion类与类之间的关系(2) 2. 依赖关系依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,...
ListView和GridView替换滑动条图片
前言记录一下AbsListView(ListView和GridView等)替换快速滑动条的几种方式。这里设计使用Java代码和xml配置方式。记录于此,方便自己查阅。正文主要涉及AbsListView的之类的修改。一般是换肤插件需要。隐藏内容!付费阅读后才能查看!¥2 ¥3多个隐藏块...
Android存储单位转换
G M K B 单位之间转换,直接上代码 // storage, G M K B public static String convertStorage(long size) { long kb = 1024; long mb = kb <...