我正在尝试逐帧动画,但它给了我一个力量关闭,我不确定为什么它给我一个力量关闭。这对我来说似乎都没问题。
这是我的代码,我希望有人能提供帮助吗? 提前谢谢。
AnimationTest.java
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.widget.ImageView;
public class AnimationTest extends Activity {
AnimationDrawable animation;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AnimationDrawable animation = new AnimationDrawable();
animation.addFrame(getResources().getDrawable(R.drawable.up), 500);
animation.addFrame(getResources().getDrawable(R.drawable.down), 500);
animation.setOneShot(false);
ImageView imageAnim = (ImageView) findViewById(R.id.imageView1);
imageAnim.setBackgroundDrawable(animation);
// start the animation!
animation.start();
}
}
activity_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">
<ImageView android:id="@+id/imageView1"
android:src="@drawable/down"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
</LinearLayout>
答案 0 :(得分:1)
你无法从onCreate方法开始动画。目前还没有视图,活动不可见。 Read this and change you code a little and it will work.我希望如此)
答案 1 :(得分:1)
您正在onCreate方法中启动动画,因为您的活动尚未显示,请使用延迟的runnable或clickListener。
您可以使用以下代码测试动画:
// inside onCreate
setContentView(R.layout.activity_main);
final AnimationDrawable animation = new AnimationDrawable();
animation.addFrame(getResources().getDrawable(R.drawable.up), 500);
animation.addFrame(getResources().getDrawable(R.drawable.down), 500);
animation.setOneShot(false);
ImageView imageAnim = (ImageView) findViewById(R.id.imageView1);
imageAnim.setBackgroundDrawable(animation);
Handler handler = new Handler();
handler.postDelayed(new Runnable(){
public void run(){
animation.start();
}
}, 3000);
请确保你的ImageView有大小,并且没有设置src来查看正在发生的事情,在你的布局xml文件中执行以下操作:
android:layout_width="50dp"
android:layout_height="50dp"
并删除src属性(如果有)