2

サーフェスビュー内にいるときにウィンドウの高さを取得するにはどうすればよいですか

これが私のレイアウトです:(サーフェスビューにはすでにLinearLayout"camera_preview"が渡されています。

ここで問題は、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>
4

1 に答える 1

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

出典:画面サイズをピクセル単位で取得

于 2012-11-15T13:48:06.750 に答える