마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

지그재그하는 애니메이션 구현

0 추천
지그재그로 왔다갔다 하면서 떨어지는걸 구현하려고합니다.

떨어뜨리는건 구현했는데

나뭇잎처럼 지그재그로 움직이는걸 도무지 어떻게 코딩해야될지 모르겠습니다 ㅠ

 

짧게라도 조언... 꼭 부탁드릴게요ㅠㅠ

 

p.s 애니메이션이 쉬운게 아니군요....
아직도초보 (3,030 포인트) 님이 2014년 8월 6일 질문

2개의 답변

0 추천
 
채택된 답변
aniView.setTranslationY 만 하셔서 위에서 아래로는 rotate 되면서 내려오게 되어 있는 소스 같습니다.
 
aniView.setTranslationX 같이 setTranslationY 하시기 바로 전라인에 추가하시는 것이 좋을 것 같습니다.
 
 
 
int xLow = 10;
int xHigh = screen_width -150;
int xValue = (int) ((Math.random() * (xHigh - xLow)) + xLow);


aniView.setTranslationX(xValue);
aniView.setTranslationY(현재세팅하시는Y값);

 

 

깜씨 (1,130 포인트) 님이 2014년 8월 6일 답변
아직도초보님이 2014년 8월 7일 채택됨
xValue값이 계속 증감되는게 아니라 적용시켜보니 엄청 이미지들이 흔들리네요... 서서히 증가시키면서 왼쪽으로 움직이게하다가 일정값이 도달하면 반대쪽으로  움직이게끔하려는건데요....흐음...ㅠ
0 추천
낙엽이 떨어지는 것을 어떻게 구현하셨는 지 모르지만,

loop 를 돌리시면서 각각의 형태의 layout을 visible 시키는 것은 어떠할까요?
깜씨 (1,130 포인트) 님이 2014년 8월 6일 답변
public void startAnimation(final ImageView aniView) {       

        aniView.setPivotX(aniView.getWidth());
        aniView.setPivotY(aniView.getHeight());

        long delay = new Random().nextInt(Constants.MAX_DELAY);

        animator = ValueAnimator.ofFloat(0, 1);
        animator.setDuration(Constants.ANIM_DURATION);
        animator.setStartDelay(delay);

        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                float value = ((Float) (animation.getAnimatedValue())).floatValue();

                gauge += 0.5f;
                mImageView[imagecount].setRotationX(gauge);
                mImageView[imagecount].setRotationY(gauge);
                aniView.setRotation(gauge);

                aniView.setTranslationY((screen_height + (150*mScale))*value);
            }
        });

        animator.start();
    }

이런식으로 짰습니다.. addUpdateListener 를 통해 loop 돌리듯이 돌리면서 이미지의 애니메이션을 주고있는상태입니다. 근데 지그재그를 어떻게 코딩해야될지 감이 안오네요...어떤식으로 짜야될까요?ㅠ
...