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(); 
     } 
    });