我想将自定义ImageView
添加到xml布局中。
main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.android.gag.TouchImageView
android:id="@+id/Image1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:clickable="true"
android:scaleType="center" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
TouchImageView
,顾名思义,extends
ImageView
类。
Main.java
touchImageView = (TouchImageView)findViewById(R.id.Image1);
我的应用崩溃了。 Logcat输出:
10-16 20:38:20.275: E/AndroidRuntime(11354): FATAL EXCEPTION: main
10-16 20:38:20.275: E/AndroidRuntime(11354): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.gag/com.android.gag.Main}: android.view.InflateException: Binary XML file line #6: Error inflating class com.android.gag.TouchImageView
10-16 20:38:20.275: E/AndroidRuntime(11354): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
idRuntime(11354): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class com.android.gag.TouchImageView
10-16 20:38:20.275: E/AndroidRuntime(11354): at android.view.LayoutInflater.createView(LayoutInflater.java:589)
10-16 20:38:20.275: E/AndroidRuntime(11354): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
拜托,有人可以帮帮我吗? 我是初学者,所以像'replace "class library" with "Android library project"'这样的答案毫无意义,因为它们太模糊,我不知道从哪里开始,到哪里去。
编辑:链接到我的TouchImageView class
答案 0 :(得分:2)
自定义View类的代码缺少两个构造函数。来自Android docs for the View class:
View(Context context, AttributeSet attrs)
从XML扩充视图时调用的构造方法。
View(Context context, AttributeSet attrs, int defStyle)
从XML执行通胀并应用特定于类的基本样式。
它崩溃了,因为它找不到它需要的构造函数,所以它不能给视图充气。
为TouchImageView类实现这两个构造函数,并查看问题是否消失。