Xamarin,Android:锁定纵横比为16:9

时间:2017-12-01 09:52:58

标签: android

我们正在开发一款主要使用Framelayouts或Linearlayouts的应用。 在我们的应用程序中,我们提供5个不同的文件夹,从mdpi到xxxhdpi。

使用权重或DisplayDimensions使我们的应用在基本上每个智能手机设备上都看起来完全相同。 每个智能手机设备,但一个。三星S8。

问题如下:

这是几乎所有其他设备上的主菜单(S3,S4,S5,S6 -Edge,S7-Edge) enter image description here

这就是S8上主菜单的截图: enter image description here

删除底部按钮并全屏显示应用程序会使情况更糟!

那么这里发生了什么? 简单 - 例如,S8使用与S7相同的宽度(1440px),但屏幕更高。在没有宽度的情况下增加屏幕高度会改变宽高比。

虽然大多数智能手机使用16:9的比例,但我认为S8的比例为20.5:9。 Ergo:屏幕看起来不像他们想象的那样。

现在,我们必须解决这个问题,我们不会让我们重新分配几乎所有活动,以适应s8。

有哪些选择? 在VISUAL STUDIO中可能有一个选项,以及#34;锁定"宽高比为16:9并且在顶部显示黑色条而不是拉伸布局?

我希望你们能帮助我们!那太棒了!

谢谢!

顺便说一句:我注意到我们团结的应用程序通常都是游戏看起来相同。在那里保持纵横比并且在侧面显示黑条。我希望,Visual Studio可以实现吗?

1 个答案:

答案 0 :(得分:0)

我找到了一种解决方法,非常简单。

        if (Resources.DisplayMetrics.HeightPixels >= 2560)
        {
            intHeightOfDisplay = 2560;
        }
        else
        {
            intHeightOfDisplay = Resources.DisplayMetrics.HeightPixels;
        }

基本上说,如果显示器的高度高于大多数手机"我只是将它设置为我的应用程序的最大高度。这无处不在。