我正在构建一个应用程序,以在Android手机的屏幕上绘制。我通过扩展SurfaceView类使用Surface View。当我这样做时,我无法在屏幕上添加任何按钮。屏幕变黑,看不到任何东西。我在网上搜索并尝试了一切。我还想改变surfaceView的大小,通过它我只能在屏幕的一部分绘制并在其余部分放置按钮。有人可以建议我这样做的另一种方法或帮助这方面的一些想法吗?非常感谢你!
答案 0 :(得分:1)
向表面视图添加按钮:
在您的xml布局中使用FrameLayout封闭SurfaceView。然后将您的按钮添加到同一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>
更改曲面视图的大小
只需要使用FrameLayoutPrams而不是LayoutParams来检查您正在设置哪种LaoutParams。我需要这样设置:
android.widget.FrameLayout.LayoutParams params = new android.widget.FrameLayout.LayoutParams(width, height);
surface.setLayoutParams(params);
希望帮助你