Android 如何计算屏幕高度减去操作栏?
当我的手机处于横向时,我想知道如何获得屏幕的像素高度,而不包括actionbar。因此,实际可视区域的像素高度。我想要这个,这样我就可以适当地调整网格布局的大小。GridLayout位于LinearLayout内部,因此如果我可以获得LinearLayout的像素高度,那么它也应该可以工作Android 如何计算屏幕高度减去操作栏?,android,android-layout,height,android-screen,android-window,Android,Android Layout,Height,Android Screen,Android Window,当我的手机处于横向时,我想知道如何获得屏幕的像素高度,而不包括actionbar。因此,实际可视区域的像素高度。我想要这个,这样我就可以适当地调整网格布局的大小。GridLayout位于LinearLayout内部,因此如果我可以获得LinearLayout的像素高度,那么它也应该可以工作 谢谢 计算整个高度: public static int getScreenHeight(Activity activity) { DisplayMetrics metrics = new Displ
谢谢 计算整个高度:
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;
}
计算整个高度:
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;
}
您可以使用获取屏幕上特定视图的坐标
layout.post(new Runnable() {
@Override
public void run() {
final Rect rect = new Rect();
layout.getGlobalVisibleRect(rect);
final int height = rect.height();
}
});
您可以使用获取屏幕上特定视图的坐标
layout.post(new Runnable() {
@Override
public void run() {
final Rect rect = new Rect();
layout.getGlobalVisibleRect(rect);
final int height = rect.height();
}
});