首页 > 解决方案 > 显示大小从系统设置更改影响我的布局奥利奥

问题描述

我希望我的布局始终具有相同的大小和形状,并且之前调整字体比例可以正常工作。现在 android 似乎想出了改变显示尺寸的选项,这让我的整个布局迷失方向。

我尝试过设置大值、大布局并尝试为布局设置正常大小,但没有得到积极的结果。

我还在某个线程中找到了这段代码来帮助我解决问题:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        Log.d("TAG", "adjustDisplayScale: " + configuration.densityDpi);
        DisplayMetrics metrics = getResources().getDisplayMetrics();
        WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
        wm.getDefaultDisplay().getMetrics(metrics);
        if (configuration.densityDpi >= 485) //for 6 inch device OR for 538 ppi
            configuration.densityDpi = 500; //decrease "display size" by ~30
        else if (configuration.densityDpi >= 300) //for 5.5 inch device OR for 432 ppi
            configuration.densityDpi = 400; //decrease "display size" by ~30
        else if (configuration.densityDpi >= 100) //for 4 inch device OR for 233 ppi
            configuration.densityDpi = 200; //decrease "display size" by ~30
        Log.d("TAG", "metrics density: " + metrics.density + "," + metrics.scaledDensity);
        metrics.scaledDensity = configuration.densityDpi * metrics.density;
        Log.d("TAG", "scaledDensity: " + metrics.scaledDensity);
        this.getResources().updateConfiguration(configuration, metrics);
    }

这似乎对我的布局也没有任何好处。它仍然变得巨大而迷失方向。谁能告诉我在不影响我的布局和设计的系统设置的情况下我可以做些什么来保持相同的大小?

标签: androiduser-interfacelayoutorientationdisplay

解决方案


使用约束布局,如果使用约束布局,则无需创建大和超大布局。最重要的是使用 sp 和 dp。

ex. <dimen name="dm_40sp">40sp</dimen>

sp根据屏幕分辨率自动调整大小。

约束布局比相对布局更容易、更有效。试试这个,如果有任何问题问我。


推荐阅读