当我将手机置于横向时,我想知道如何获得不包括操作栏的屏幕像素高度。所以实际可视区域的像素高度。我想要这个,所以我可以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();
}
});