使用xamarin获得屏幕大小的android

本文关键字:android 屏幕 xamarin 使用 | 更新日期: 2023-09-27 18:08:17

我想知道是否有人知道一个简单的方法来获得一个android屏幕尺寸的高度和宽度使用c#在Xamarin。我需要获得屏幕大小,以便在我的一个适配器类中使用它。我试过使用显示器和IWindowManager,但没有成功。任何帮助或指出正确的方向将不胜感激。提前感谢!!

使用xamarin获得屏幕大小的android

最适合我的答案是使用

var metrics = Resources.DisplayMetrics;

谢谢大家的帮助!

var metrics = Resources.DisplayMetrics;
        height = metrics.HeightPixels;
        width = metrics.WidthPixels;

下面是获取屏幕信息的代码片段:

var metrics = new DisplayMetrics();
var windowManager = this.GetSystemService(Context.WindowService) as IWindowManager;
windowManager.DefaultDisplay.GetMetrics(metrics);
var height = metrics.HeightPixels;
var width = metrics.WidthPixels;
var xdpi = metrics.Xdpi;
var ydpi = metrics.Ydpi;
var density = metrics.Density;

唯一的事情,我不确定的是套管到IWindowManager如果可以这样做,或者也许你必须做一些更具体的事情。

对于实际设备屏幕大小,请使用Xamarin.Essentials.

这个和被接受的答案之间的区别是,这个会给你的硬件准确的数字,但那个会给你缩小状态栏和导航栏的大小。

var mainDisplayInfo = DeviceDisplay.MainDisplayInfo;
var realHeightInPx = mainDisplayInfo.Height;