0
當我使用橫向手機時,我想知道如何獲得不包括操作欄的屏幕像素高度。所以實際可視區域的像素高度。我想要這個,所以我可以適當地調整GridLayout
。 GridLayout
在LinearLayout
之內,所以如果我能得到LinearLayout
的像素高度也應該可以工作。如何獲得屏幕高度減去操作欄?
謝謝!
當我使用橫向手機時,我想知道如何獲得不包括操作欄的屏幕像素高度。所以實際可視區域的像素高度。我想要這個,所以我可以適當地調整GridLayout
。 GridLayout
在LinearLayout
之內,所以如果我能得到LinearLayout
的像素高度也應該可以工作。如何獲得屏幕高度減去操作欄?
謝謝!
計算整個高度:
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;
}
您可以使用View#getGlobalVisibleRect(Rect)
讓屏幕上的特定視圖的座標。
layout.post(new Runnable() {
@Override
public void run() {
final Rect rect = new Rect();
layout.getGlobalVisibleRect(rect);
final int height = rect.height();
}
});