【问题标题】:Different width and height from DisplayMetrics and $(window).width() in WebView与 WebView 中的 DisplayMetrics 和 $(window).width() 不同的宽度和高度
【发布时间】:2017-03-11 13:05:59
【问题描述】:

在Android应用中,我尝试使用以下方式获取屏幕宽度和高度:

DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        final int screenWidth = metrics.widthPixels;
        final int screenHeight = metrics.heightPixels;

这分别为我的手机报告 1080 和 1920,符合规格。

但是,在 webview 中,当我使用时:

var screenWidth = $(window).width();

这仅报告 360。

据我了解,两者都以像素为单位,为什么值不同?

【问题讨论】:

  • 检查显示比例,它可能等于 3
  • @RomanTruba 我在哪里可以查看?
  • 您的 webview 是否受到任何限制,或者您是否全屏显示此 webview?
  • @NoelBautista 我不确定。它使用我可以从教程中找到的所有默认选项全屏运行。

标签: android webview


【解决方案1】:

两种情况下的通知宽度相同,但单位不同。

例如

这是像素数 指标.widthPixels;

这个在 Dps 中 360 或 $(window).width();

将 360Dps 转换为像素

在 xxhdpi 设备上,360dps = 1080px

Dp to pixels & vice versa

【讨论】:

  • 我认为 jQuery .width() 会像实际像素一样返回 pixel,但我想你是对的,它在 web 视图中返回 dp。谢谢。
【解决方案2】:

您可以使用getResources().getDisplayMetrics()方法获取displayMetrics。

DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); 
final int screenWidth = metrics.widthPixels;
final int screenHeight = metrics.heightPixels;

【讨论】:

    【解决方案3】:

    我使用这个简单的方法(在 utils 类中)来转换 px dp。

    public static int convertIntToDp(int inputValue, DisplayMetrics displayMetrics){
            return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, inputValue, displayMetrics);
        }
    

    希望对你有帮助

    【讨论】:

      【解决方案4】:

      我发现您设备的 dpi 属于 xxhdpi

      其中 300 dpi 可以转换为 1080 像素 宽度。

      和 640 dpi 可以转换为 1920 像素。

      你也可以包含;

       private int convertDpToPixel(int dp) {
          Resources r = getResources();
          float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, 
      r.getDisplayMetrics());
          return (int) px;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-10
        • 2018-01-23
        • 2021-04-24
        • 1970-01-01
        相关资源
        最近更新 更多