引言
前一阵子在7.0的机子上调试应用,发现设置中有一个显示大小的选项,这个选项可以改变应用显示的大小,即应用显示缩放功能,会改变机子的dpi,导致应用出现屏幕适配的问题。
当然,国内大部分手机厂商已经把此项设置给屏蔽掉了,此处记录该问题,后期项目若遇到该问题,可直接拿来解决。
注:我的解决方法是需要用到framework包下hide的api,只用该方法需要依赖编译安卓源码得到的framework.jar包。此种方法稍微麻烦,如找到其它简易的解决方法,我会贴上。
问题
在设置中改变应用显示大小。
应用正常情况下:
异常情况下:
分析
这个问题,其实因为在设置中设置该选项后,会改变系统的dpi,通过log信息来看一下吧。
先看看通过adb命令查看到的手机屏幕信息:
设置中改变显示大小,查看输出屏幕分辨率/density信息。
测试代码:
//获取densityDpi(方法一)
int densityDpi = this.getResources().getConfiguration().densityDpi;
LogUtils.d(TAG, "densityDpi " +