2

「item」で指定された「animation-list」の下の「image_list.xml」に、画像のリスト(約10個)があります。そして、画像のフェードイン効果用に「fade_in.xml」ファイルを1つ作成しました。コードはエラーなしで正常に動作します。

私が持っている唯一の問題は、フェードイン効果が最初の画像に表示されますが、image_list の他の項目には表示されないことです。これを可能にする方法を教えてください。すべての画像が表示されたときにフェードインします。私のコードは次のとおりです。

image_list.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/sample1"
    android:duration="2000"/>
<item android:drawable="@drawable/sample2"
    android:duration="2000"/>
<item android:drawable="@drawable/sample3"
    android:duration="2000"/>
<item android:drawable="@drawable/sample4"
    android:duration="2000"/>
. . .
</animation-list>

ImagesActivity.java

   public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    ImageView img_change = (ImageView) findViewById(R.id.images);
    Animation animationFadeIn = AnimationUtils.loadAnimation(this, R.anim.fade_in);
    img_change.setBackgroundResource(R.drawable.image_list);
    AnimationDrawable splashAnimation = (AnimationDrawable) img_change.getBackground();
    if(hasFocus) {
        img_change.setAnimation(animationFadeIn);
        splashAnimation.start();
}}
4

1 に答える 1

11

AnimationDrawable を開始する前に、フェードの開始と終了の時間を追加します

AnimationDrawable splashAnimation = ((AnimationDrawable) iv.getBackground());

splashAnimation .setEnterFadeDuration(500);
splashAnimation .setExitFadeDuration(500);

animDrawable.start();

わたしにはできる。

ハッピーコーディング

于 2013-10-23T14:07:31.120 に答える