我想让这个例子工作: 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 它有效;)
答案 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的