0

当我使用横向手机时,我想知道如何获得不包括操作栏的屏幕像素高度。所以实际可视区域的像素高度。我想要这个,所以我可以适当地调整GridLayoutGridLayoutLinearLayout之内,所以如果我能得到LinearLayout的像素高度也应该可以工作。如何获得屏幕高度减去操作栏?

谢谢!

回答

1

计算整个高度:

public static int getScreenHeight(Activity activity) { 
    DisplayMetrics metrics = new DisplayMetrics(); 
    activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    return metrics.heightPixels; 
} 

,并从中扣除操作栏高度:

public static int getActionBarHeight(Context context) { 
    int[] textSizeAttr = new int[]{R.attr.actionBarSize}; 
    TypedArray a = context.obtainStyledAttributes(new TypedValue().data, textSizeAttr); 
    int height = a.getDimensionPixelSize(0, 0); 
    a.recycle(); 
    return height; 
} 
0

您可以使用View#getGlobalVisibleRect(Rect)让屏幕上的特定视图的坐标。

 

    layout.post(new Runnable() { 
     @Override 
     public void run() { 
      final Rect rect = new Rect(); 
      layout.getGlobalVisibleRect(rect); 

      final int height = rect.height(); 
     } 
    });