我想知道是否有简单的方法,可以使用C#在Xamarin中获取Android屏幕大小的高度和宽度。 我需要获取屏幕大小以便在我的适配器类中使用它。 我尝试过使用display和IWindowManager,但都没有成功。 希望能得到任何帮助或指引。 谢谢您提前!!
我想知道是否有简单的方法,可以使用C#在Xamarin中获取Android屏幕大小的高度和宽度。 我需要获取屏幕大小以便在我的适配器类中使用它。 我尝试过使用display和IWindowManager,但都没有成功。 希望能得到任何帮助或指引。 谢谢您提前!!
对我最有效的答案是使用
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;