我一直在开发一个应用程序,其中一个球(位图)出现在画布上,用户点击屏幕的位置。背景是 xml 布局 setContentView(R.layout.newsession)。画布是黑色画布。当我设置我的 java 父类 setContentView(customView) 时,程序运行良好,但是当我将自定义表面视图添加到我的 XML 布局和 setContentView(R.layout.newsession) 时,屏幕只显示画布,而 OnTouch 事件没有不行。难道我做错了什么?我已经为此工作了将近一个星期,我真的需要帮助。我将在下面发布 XML 布局和自定义 SurfaceView 的代码。提前致谢!
XML 布局(新会话)
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/newSessionPage"
>
<ImageView
android:layout_width="231dp"
android:id="@+id/ivStrikeGrid"
android:layout_gravity="center"
android:layout_height="270dp"
android:layout_marginTop="18dp"
android:src="@drawable/strike_grid"
android:layout_marginBottom="10dp"
/>
<appsys.studios.CustomSurfaceViewOne
android:id="@+id/customSurfaceViewOne1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></appsys.studios.CustomSurfaceViewOne
>
</FrameLayout>
自定义 SurfaceView
package appsys.studios;
public class CustomSurfaceViewOne extends SurfaceView implements Runnable{
public CustomSurfaceViewOne(Context context, AttributeSet attr) {
super(context, attr);
ourHolder = getHolder();
}
// Other stuff
}
它像这样工作正常:
newSeshView = new CustomSurfaceViewOne(this, null);
setContentView(newSeshView);
但是当我尝试从 XML 布局中使用它时没有任何反应,如下所示:
newSeshView = new CustomSurfaceViewOne(this, null);
setContentView(R.layout.newsession);
再次感谢!:)