0

私は3つの画像が画面全体にアニメーション表示されるアニメーションを作成しています。中間の画像が画面の中央に来ると、フェードインします。最初のアニメーションでフェードインが起こっています。

最初の画像が途中でフェードインするときだけ、すべてがうまく動作します.2番目と3番目の画像が中央に当ると、フェードしませんin。

すべての画像には独自の表示があります。フェードインメソッドはすべての同じビューで実行されます。

以下のコードを参照してください。あなたがもっと情報を必要とするかどうかを教えてください。

ここでは、スライドが画面を横切って移動することをシミュレーションするプロセスを示します。 moveThreeはアニメーションのフェードです。 moveOneとmoveTwoは画面上の画像の翻訳です。

public static int secondProcess(AnimationListener activity, View apa1,View apa2, View apa3,int animationmove) 
{ 
    Log.d("2", "SECOND PROCESS"); 
    moveOne(activity, apa2); 
    moveTwo(activity,apa1); 
    animationmove = 3; 
    return animationmove; 

} 

public static int thirdProcess(AnimationListener activity, View apa1,View apa2,View apa3, int animationmove) 
{ 
    Log.d("3", "THIRD PROCESS"); 
    moveThree(activity,apa1); 
    animationmove = 4; 
    return animationmove; 
} 

public static int fourthProcess(AnimationListener activity, View apa1, View apa2,View apa3,int animationmove) 
{ 
    Log.d("4", "FOURTH PROCESS"); 
    moveOne(activity, apa3); 
    moveTwo(activity, apa2); 
    moveFour(activity,apa1); 
    animationmove = 5; 
    return animationmove; 

} 


public static int fifthProcess(AnimationListener activity, View apa1,View apa2,View apa3, int animationmove) 
{ 
    Log.d("5", "FIFTH PROCESS"); 
    moveThree(activity,apa2);//IN THE SECOND VIEW HERE THE IMAGE IS NOT FADING 
    animationmove = 6; 
    return animationmove; 

} 

moveThree方法:

private static void moveThree(AnimationListener activity, View apa) 
{ 
    Log.v("MOVETHREE", "Started move3"); 
    AnimationSet picMov3 = new AnimationSet(true); 
    picMov3.setAnimationListener(activity); 
    AlphaAnimation fadein = new AlphaAnimation((float) 0.3, 1); 
    fadein.setFillAfter(true); 

    fadein.setDuration(duration); 
    picMov3.addAnimation(fadein); 
    TranslateAnimation trans1 = new TranslateAnimation(-500, -500, 0, 0); 
    trans1.setDuration(duration); 
    picMov3.setFillAfter(true); 
    picMov3.setInterpolator(interpolator); 
    picMov3.addAnimation(trans1); 

    apa.startAnimation(picMov3); 


} 

答えて

1

あなただけの最初のビューのmoveThreeを呼び出します。あなたはまた、他のビューのために呼び出す必要があります。

moveThree(activity,apa1); 
moveThree(activity,apa2); 
moveThree(activity,apa3); 
+0

良い点!私は、私が2番目のビューapa2をフェードインするfiftheprocessの上に自分のコードに追加するのを忘れていました。私はコードを編集した – user182192

関連する問題