0

화면 전체에 애니메이션을 적용 할 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를 호출합니다. 다른 뷰를 호출하려면 if 호출해야합니다.

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

좋은 점! 나는 두 번째보기 apa2가 사라지는 fiftheprocess 위의 코드에 추가하는 것을 잊었다. 나는 코드를 편집했다. – user182192