【问题标题】:Unable to get the correct screen size using Services for Android无法使用适用于 Android 的服务获得正确的屏幕尺寸
【发布时间】:2010-09-03 07:04:44
【问题描述】:

所以我想在我的应用程序上获取 Moto Droid 的屏幕尺寸。在我的 Create 中,我使用 Service windowManager 来获取默认显示。

Display display = getWindowManager().getDefaultDisplay();
    int width = display.getWidth(); 
    int height = display.getHeight();

当我设置它时,我得到 320 的宽度和 570 的高度。看起来不对,它应该是 320x480。 我想在任何设备的屏幕底部放置一个 300x50 的图像(实际上),所以通常我会得到屏幕的高度并减去图像高度,以便将其放置在视图上。但由于某种原因我得到 570,我必须向下滚动才能看到图像。为什么它会得到错误的屏幕尺寸,还有另一种更准确的方法来获取尺寸。谢谢

布局代码如下

   linearOut = new LinearLayout(this);
    linear = new LinearLayout(this);
    linear.setOrientation(LinearLayout.VERTICAL);


    scroll = new ScrollView(this);
    linearOut.addView(scroll);
    scroll.addView(linear);

            linear.addView(text);
    linear.addView(bbottom.getViewGroup());

    setContentView(linearOut);

【问题讨论】:

    标签: android fullscreen


    【解决方案1】:

    试试这个::

    Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
        int width = display.getWidth(); 
        int height = display.getHeight();
    

    【讨论】:

    • 感谢您的快速响应,不幸的是我仍然得到相同的分辨率。这个570是否包含状态栏?
    • 我有实际的设备。是的,所以我假设它包括状态栏高度,这就是我的图像位置关闭的原因。
    • 你知道获取状态栏高度的方法吗?
    【解决方案2】:

    我想我明白了。所以上面的信息显示全屏可见。所以这确实包括状态栏。有没有办法查看状态栏的高度?我不确定是否所有 android 设备的状态栏都具有相同的像素高度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 2013-07-19
      相关资源
      最近更新 更多