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