底部96像素的Nexus 4屏幕缺失 - 获取Nexus 4的窗口尺寸

时间:2015-06-21 21:48:33

标签: android android-layout nexus-4

我正在处理一个在main.xml中包含RelativeLayout的应用程序。通过onclick事件动态地将其他ChildView添加到RelativeLayout。

当我运行应用程序时,我的nexus 4重新调整的displayHeight是1184,虽然它应该是1280.基本上,屏幕的高度被缩短但我不知道为什么。我将layout_height设置为match_parent但mFrame(RelativeLayout)返回1184。

有人知道为什么在调用.getHeight()时没有返回显示的全长?

重写onWindowsChanged()以检测正在使用的设备的屏幕大小:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {

        // Get the size of the display so this View knows where borders are
        mDisplayWidth = mFrame.getWidth();
        mDisplayHeight = mFrame.getHeight();

        Log.v(TAG, "mDisplayWidth & mDisplayHeight -  w:" + mDisplayWidth + " h: " + mDisplayHeight);
    }
}

此部分代码的logcat返回:

mDisplayWidth & mDisplayHeight -  w:768 h: 1184

我的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FF444444"
        android:id="@+id/frame">

</RelativeLayout>

1 个答案:

答案 0 :(得分:2)

Nexus 4的显示屏为1280 x 768,但Android系统按钮占据了部分屏幕。

您的身高会返回1184,因为这是显示器的全高(1280像素)减去Android系统按钮占用的96像素。