【问题标题】:Getting screen size android with xamarin使用 xamarin 获取屏幕大小的 android
【发布时间】:2022-02-24 07:53:32
【问题描述】:

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

【问题讨论】:

  • 杰森,感谢您的快速回复!我实际上已经尝试过了,但是当我有 var metrics = Resource.DisplayMetrics;我收到一条错误消息,提示“资源”不包含定义“DisplayMetrics”。
  • 它的“资源”,复数
  • 杰森,非常感谢。我的错!哈哈
  • Jason,我还有一个问题希望您能帮我解答。当我缩放位图时,它会在我运行将 apk 部署到我的 Note 3 时起作用,但是当我将 apk 部署到 Nexus Emulator 时,位图不会调整大小。有什么想法吗?

标签: c# android xamarin xamarin.android


【解决方案1】:

最适合我的答案是使用

var metrics = Resources.DisplayMetrics;

感谢大家的帮助!

【讨论】:

    【解决方案2】:
    var metrics = Resources.DisplayMetrics;
    
            height = metrics.HeightPixels;
            width = metrics.WidthPixels;
    

    【讨论】:

      【解决方案3】:

      这里有一个代码 sn-p 来获取有关屏幕的一些信息:

      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 的外壳是否可以这样完成,或者您可能需要做一些更具体的事情。 希望对你有帮助。

      【讨论】:

        【解决方案4】:

        对于真实设备的屏幕尺寸,使用Xamarin.Essentials

        此答案与公认答案的区别在于,这将为您的硬件提供准确的数字,但它会为您提供状态和导航栏减小的大小。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-12-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-23
          相关资源
          最近更新 更多