2015-02-05 97 views
0

手勢我嘗試使用TouchImageView我在https://github.com/MikeOrtiz/TouchImageView使用TouchImageView(外部類)與圖像

找到,但我得到了一個錯誤:

02-05 12:46:05.508: E/AndroidRuntime(21710): FATAL EXCEPTION: main 
02-05 12:46:05.508: E/AndroidRuntime(21710): Process: com.km.parkit, PID: 21710 
02-05 12:46:05.508: E/AndroidRuntime(21710): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.km.parkit/com.km.parkit.MainMap}: java.lang.ClassCastException: android.widget.ImageView cannot be cast to com.km.parkit.TouchImageView 
02-05 12:46:05.508: E/AndroidRuntime(21710): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at android.app.ActivityThread.access$800(ActivityThread.java:144) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at android.os.Handler.dispatchMessage(Handler.java:102) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at android.os.Looper.loop(Looper.java:135) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at android.app.ActivityThread.main(ActivityThread.java:5221) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at java.lang.reflect.Method.invoke(Native Method) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at java.lang.reflect.Method.invoke(Method.java:372) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
02-05 12:46:05.508: E/AndroidRuntime(21710): Caused by: java.lang.ClassCastException: android.widget.ImageView cannot be cast to com.km.parkit.TouchImageView 
02-05 12:46:05.508: E/AndroidRuntime(21710): at com.km.parkit.MainMap.onCreate(MainMap.java:16) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at android.app.Activity.performCreate(Activity.java:5933) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
02-05 12:46:05.508: E/AndroidRuntime(21710): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 

那是因爲我錯誤地使用了類?

我用它在另一個類名爲MainMap:

TouchImageView image; 
image = (TouchImageView) findViewById(R.id.overview); 
+0

你的XML,而不是'ImageView' –

+0

變化的ImageView到com.km.parkit.TouchImageView在活動XML文件中使用'com.km.parkit.TouchImageView'。 –

+0

我用過ImageView,看來我應該在聲明中使用com.km.parkit.TouchImageView。 – KaeM

回答

0

這樣做:

TouchImageView img = (TouchImageView) findViewById(R.id.img); 

如果您在XML使用TouchImageView,則必須提供完整的包 名字,因爲這是一個自定義的視圖。例如:

<com.km.parkit.TouchImageView 
     android:id="@+id/img" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
+0

我明白了,謝謝。所以如果我使用自定義圖像視圖,我必須使用完整的包名稱。非常感謝,您給了我一個Android編碼的新見解。 – KaeM

+0

@KaeM:歡迎夥伴:-) –