2013-01-17 52 views
1

我正在構建一個應用程序以在Android手機的屏幕上繪製。我通過擴展SurfaceView類來使用Surface View。當我這樣做時,我無法在屏幕上添加任何按鈕。屏幕變黑,什麼都看不到。我在網上搜索了所有可能的東西。我也想改變surfaceView的大小,通過它我只能畫出屏幕的一部分,並將按鈕放在其餘部分。有人可以建議我採取另一種方法來做到這一點,或者在這方面提供一些想法嗎?非常感謝!將按鈕添加到Surface View並更改SurfaceView的大小

回答

1

添加按鈕表面觀:

附上您的surfaceView在你的XML佈局一個FrameLayout裏。然後將你的按鈕添加到相同的FrameLayout。確保它們放置在表面視圖下方,以便它們在其上繪製。 (可能是一個好主意,他們捆綁在另一個佈局,並添加到FrameLayout裏。)表面觀的

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <SurfaceView android:id="@+id/surfaceView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></SurfaceView> 
    <LinearLayout android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 
     <Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 
    </LinearLayout> 
</FrameLayout> 

更改大小

只需要檢查你設置什麼樣的LaoutParams的,使用FrameLayoutPrams代替LayoutParams。我需要設置這樣的:

android.widget.FrameLayout.LayoutParams params = new android.widget.FrameLayout.LayoutParams(width, height); 
    surface.setLayoutParams(params); 

希望幫助您

+0

什麼是「表面」在這裏?它的線性佈局或表面視圖的對象? – Deepak