2012-11-10 60 views
2

如何獲取窗口的高度,當我從表面上看如何從SurfaceView中獲取窗口高度?

裏面這是我的佈局:(表面視圖已具有的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> 

回答

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 

來源:Get screen dimensions in pixels