如何禁用密度设置?

时间:2018-05-17 15:28:04

标签: java android xml

在Android N中,有一项新功能允许用户更改显示尺寸或屏幕密度(位于显示设置区域)。

暂且不考虑实际的屏幕尺寸,有没有办法禁用或忽略此设置?

我问的原因是因为这个设置弄乱了用户界面并使一切看起来过于紧张,或者在较小的平板电脑(600dp)上启动应用程序的手机版本。

我已经在近二十几个仿真器上测试了我的应用程序,并且在过去到目前为止没有任何问题。

1 个答案:

答案 0 :(得分:0)

虽然我一般会同意CommonsWare,但这种实现需要通常指向设计不佳的布局,您可以使用以下代码覆盖默认屏幕密度:

    Configuration configuration = getResources().getConfiguration();
    configuration.fontScale = 1f; 
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    metrics.scaledDensity = configuration.fontScale * metrics.density;
    configuration.densityDpi = (int) getResources().getDisplayMetrics().xdpi;
    getBaseContext().getResources().updateConfiguration(configuration, metrics);