簡體   English   中英

如何根據屏幕的物理尺寸按比例縮放布局?

[英]How to scale layout proportionally to screen's physical size?

需要整個布局寬度與任何設備的屏幕的縱向物理寬度完全相同,因此 DPI、屏幕尺寸、像素縱向寬度或寬高關系都無關緊要。

我現在要做的就是通過將下一個代碼添加到 MainActivity.cs 來覆蓋用戶的 Android 配置中的字體大小:

public override Resources Resources
{
    get
    {
        Configuration config = base.Resources.Configuration;
        if (config == null)
        {
            config = new Configuration();
        }
        config.FontScale = 1f;
        return CreateConfigurationContext(config).Resources;
    }
}

這取得了很大的進步,但仍然可以看到不同設備之間的很多差異,這些設備可能有更長或更短的屏幕、更大或更小的 DPI 以及不同的尺寸。 例如來自模擬器的設備 Pixel 2,它具有 1080x1920 分辨率和 420 dpi,布局非常適合(我就是這樣做的),但是當我在物理設備 Redmi 9 1080x2340 分辨率和 395 dpi 中嘗試時(大約 3 毫米更大的縱向寬度) ,布局變大了一點,元素放不進去。

如何使布局寬度與物理尺寸成比例縮放,以便無論設備如何,它都可以始終適合縱向模式的寬度?

您可以嘗試使用 ConstraintLayout 的百分比或比率維度屬性。

約束布局: 約束布局

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM