Android,从文档中做AnimationDrawable ...不工作:(

时间:2011-09-27 00:01:33

标签: android animation

我想让这个例子工作: http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html

但是当它开始时,它会崩溃(强制关闭)并且我不确定问题出在哪里,因为我是新手。

我的代码: (Java文件)

package com.ryan.test;

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;

public class TestAnimationActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);            

        ImageView img = (ImageView)findViewById(R.id.spinning_wheel_image);
        img.setBackgroundResource(R.drawable.spin_animation);    
        AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();    
        frameAnimation.start();            
        setContentView(R.layout.main);
    }
}

动画XML文件

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
 android:oneshot="false">
    <item android:drawable="@drawable/note0" android:duration="50" />
    <item android:drawable="@drawable/note1" android:duration="50" />        
 </animation-list>

Main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/hello" />

    <ImageView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:src="@drawable/note0"
        android:id="@+id/spinning_wheel_image"></ImageView>
</LinearLayout>

请注意,动画xml文件位于res / drawable-hdpi中,将它放在res / anim文件夹中会给我错误。另请注意,我是Android noobie;)

谢谢!
莱恩

EDIT;

演示代码中存在错误:http://code.google.com/p/android/issues/detail?id=1818 所以我修改了代码:pastebin.com/ZtLf8J87 它有效;)

1 个答案:

答案 0 :(得分:1)

动画xml应该始终以res / anim决定。抛出错误的原因是由于您使用的是ImageView img =

  

(ImageView的)findViewById(R.id.spinning_wheel_image);

在设置内容视图之前,即

  

的setContentView(R.layout.main);

用于跟踪错误和调试使用Logcat。您可能会在Eclipse中的以下位置找到它。 Windows =&gt; Open Perspective =&gt; logcat的