2013-08-17 152 views
1

我有一个AnimationDrawable对象,当我调用wavingAndroid方法时,游戏崩溃了。任何帮助? 这里是我的MainActivity.java我的应用程序在调用我的动画时崩溃?

private void wavingAndroid(){ 
ImageView animateAndroid = (ImageView) findViewById(R.id.dancingAndroidLogo); 
animateAndroid.setImageResource(R.drawable.movingandroid); 
AnimationDrawable androidAnimation = (AnimationDrawable) animateAndroid.getDrawable(); 
androidAnimation.start(); 
    } 

,我想在这里把它叫做:

public void onClick(View v){ 
    wavingAndroid(); 
    } 

这里是我的xml文件:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
android:oneshot="true" > 

<item 
    android:drawable="@drawable/dancinglogo01" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo02" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo03" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo04" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo05" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo06" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo07" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo08" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo09" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo10" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo11" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo12" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo13" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo14" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo15" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo16" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo17" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo18" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo19" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo20" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo21" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo22" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo23" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo24" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo25" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo27" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo28" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo29" 
    android:duration="41"/> 
<item 
    android:drawable="@drawable/dancinglogo30" 
    android:duration="41"/> 

<!-- Reset to original --> 
<item 
    android:drawable="@drawable/dancinglogo01" 
    android:duration="10"/> 

    </animation-list> 

这里是我的logcat:

08-17 09:59:22.487: E/AndroidRuntime(22392): FATAL EXCEPTION: main 
    08-17 09:59:22.487: E/AndroidRuntime(22392): java.lang.NullPointerException 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at   com.thatnerdstuff.build_a_rig.MainActivity.wavingAndroid(MainActivity.java:149) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at com.thatnerdstuff.build_a_rig.MainActivity.access$0(MainActivity.java:145) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at com.thatnerdstuff.build_a_rig.MainActivity$1.onClick(MainActivity.java:46) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at android.view.View.performClick(View.java:4203) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at android.view.View$PerformClick.run(View.java:17189) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at android.os.Handler.handleCallback(Handler.java:615) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at android.os.Handler.dispatchMessage(Handler.java:92) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at android.os.Looper.loop(Looper.java:137) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at android.app.ActivityThread.main(ActivityThread.java:4950) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at java.lang.reflect.Method.invokeNative(Native Method) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at java.lang.reflect.Method.invoke(Method.java:511) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
    08-17 09:59:22.487: E/AndroidRuntime(22392): at dalvik.system.NativeStart.main(Native Method) 

任何帮助这件事情会非常奇妙,因为我已经看过很多其他论坛,试图找到解决办法,我不知道它是从哪里来的。我试过清理这个项目,但没有任何东西。提前致谢!

+1

什么是第149行? (MainActivity.java:149) – 2013-08-17 15:07:34

+0

androidAnimation.start(); @matheszabi –

+0

androidAnimation =(AnimationDrawable)animateAndroid.getDrawable();返回null多数民众赞成的问题,这需要解决它 – 2013-08-17 15:09:42

回答

1

尝试加载图像AnimationDrawable在代码中,像这样的:

AnimationDrawable frameAnimation= new AnimationDrawable(); 
frameAnimation.addFrame(getResources().getDrawable(R.drawable.dancinglogo01), 41); 
frameAnimation.addFrame(getResources().getDrawable(R.drawable.dancinglogo02), 41); 

添加这样所有的帧在wavingAndroid()方法,然后加载它的ImageView这样

animateAndroid = (ImageView) findViewById(R.id.dancingAndroidLogo); 
animaateAndroid.setBackgroundDrawable(frameAnimation); 

现在,在您onClick()方法开始使用动画:

frameAnimation.start(); 
相关问题