当我在表面视图中
时,如何获得窗口高度这是我的布局:(表面视图已经是LinearLayout" camera_preview"传递给它。
现在的问题是如何获得Window布局,这与FrameLayout相同?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:layout_gravity="center"
android:id="@+id/camera_preview">
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="#999999"
android:gravity="top|center_horizontal"
android:id="@+id/top_cover">
</LinearLayout>
<LinearLayout
android:background="#999999"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:layout_marginRight="0dp"
android:layout_marginTop="0dp"
android:padding="10dp"
android:id="@+id/bottom_cover"
android:gravity="center">
<Button
android:id="@+id/button_capture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Capture" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
答案 0 :(得分:3)
您可以通过以下方式获取屏幕尺寸:
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
然后执行(对于API级别13及以上):
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
在以前的级别上,使用了这些弃用的代码:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth(); // deprecated
int height = display.getHeight(); // deprecated