Android 使用setContentView进行SurfaceView

Android 使用setContentView进行SurfaceView,android,Android,我有一个表面视图,将一个图像作为画布的背景,另一个作为拖放图像放置在第一张图片的顶部。我的代码的这一部分工作正常(除了当它启动时,屏幕是黑色的,直到我触摸它),然后背景图像出现,一切正常。此活动在没有setContentView调用的情况下全屏运行,因此我想使用活动布局添加按钮以启动下一个活动 setContentView(R.layout.image\u edit\u活动) 每次使用类转换xml时,都需要有三个构造函数 public Crosshair(Context context)

我有一个表面视图,将一个图像作为画布的背景,另一个作为拖放图像放置在第一张图片的顶部。我的代码的这一部分工作正常(除了当它启动时,屏幕是黑色的,直到我触摸它),然后背景图像出现,一切正常。此活动在没有setContentView调用的情况下全屏运行,因此我想使用活动布局添加按钮以启动下一个活动

setContentView(R.layout.image\u edit\u活动)


每次使用类转换xml时,都需要有三个构造函数

    public Crosshair(Context context) {
    super(context);
    init(context);
}

public Crosshair(Context context, AttributeSet attrs) {
    super(context, attrs);
    init(context);
}

public Crosshair(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init(context);
}

这不是问题所在。我添加了构造函数,但仍然有相同的错误。@Chrystian为什么要实例化crosshairView并再次实例化它???移除线十字线crosshairView=新十字线(this,w,h,reportDate);只是把十字线放在十字线视图上;
                 <?xml version="1.0" encoding="utf-8"?>
          <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
       android:layout_height="fill_parent" >

          <com.effbe.accelerometer.ImageEditActivity.Crosshair
    android:id="@+id/surfaceView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="114dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/ok_button"
        android:padding="10dp"
        android:paddingLeft="10dip"
        android:text="OK"
        android:textColor="#ffffff" />
</LinearLayout>
 04-23 21:12:28.618: E/AndroidRuntime(27487): FATAL EXCEPTION: main
 04-23 21:12:28.618: E/AndroidRuntime(27487): Process: com.effbe.accelerometer
 04-23 21:12:28.618: E/AndroidRuntime(27487): java.lang.RuntimeException: Unable to     start activity   ComponentInfo{com.effbe.accelerometer/com.effbe.accelerometer.ImageEditActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class com.effbe.accelerometer.ImageEditActivity.Crosshair
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class com.effbe.accelerometer.ImageEditActivity.Crosshair
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): 
 04-23 21:12:28.618: E/AndroidRuntime(27487): Caused by: java.lang.ClassNotFoundException:  Didn't find class "com.effbe.accelerometer.ImageEditActivity.Crosshair" on path: DexPathList[[zip file "/data/app/com.effbe.accelerometer-1.apk"]
    public Crosshair(Context context) {
    super(context);
    init(context);
}

public Crosshair(Context context, AttributeSet attrs) {
    super(context, attrs);
    init(context);
}

public Crosshair(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init(context);
}