Android 安卓:以不同的方式确定屏幕大小会导致不同的屏幕大小

Android 安卓:以不同的方式确定屏幕大小会导致不同的屏幕大小,android,screen-size,measurement,Android,Screen Size,Measurement,当我通过此尝试确定活动中的屏幕大小时,我得到800x480,结果如下: @SuppressWarnings("deprecation") private void initSpecs() { WindowManager windowManager = (WindowManager)this.getSystemService(Context.WINDOW_SERVICE); Point size = new Point(); if (Build.VERSION.SDK_I

当我通过此尝试确定活动中的屏幕大小时,我得到800x480,结果如下:

@SuppressWarnings("deprecation")
private void initSpecs()
{
    WindowManager windowManager = (WindowManager)this.getSystemService(Context.WINDOW_SERVICE);
    Point size = new Point();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2)
    {
        windowManager.getDefaultDisplay().getSize(size);

        effectiveWidth = size.x;
        effectiveHeight = size.y;
    }
    else
    {
        Display display = windowManager.getDefaultDisplay();

        effectiveWidth = display.getWidth();
        effectiveHeight = display.getHeight();
    }
}
当我通过以下尝试确定游戏视图(类扩展视图)中的屏幕大小时,我得到800x442

@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    int width = MeasureSpec.getSize(widthMeasureSpec);
    int height = MeasureSpec.getSize(heightMeasureSpec);
}

没有标题栏。这种差异是如何产生的?

问题是,第一种方法实际上是得到“屏幕/显示”大小,而第二种方法得到的是视图的宽度/高度测量值,其中覆盖了“onMeasure”,这不一定等于屏幕大小,特别是如果其他视图在其生命周期中影响视图的大小。这是一种观点的生命周期

  • 测量*
  • 布局
请注意,如果另一个视图更改其大小,并且操作系统认为刷新视图是一个好主意,则此生命周期有可能重复

希望有帮助

问候