1

フレームごとのアニメーションを取得しようとしていますが、力が近くなり、なぜ力が近くなるのかわかりません。それはすべて私には大丈夫のようです。

これが私のコードです。誰かが助けてくれることを願っていますか?前もって感謝します。

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>
4

2 に答える 2

1

onCreateメソッドからアニメーションを開始することはできません。まだビューはなく、アクティビティは表示されません。これを読んで、コードを少し変更すれば機能します。そうだといい )

于 2013-01-30T11:48:20.090 に答える
1

onCreateメソッドでアニメーションを開始していますが、アクティビティがまだ表示されていないため機能しません。代わりに、遅延実行可能ファイルまたは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属性がある場合は削除します

于 2013-01-30T11:50:03.790 に答える