안드로이드 개발 질문/답변
(글 수 45,052)
if(touchX >= 53 && touchX <= 165 && touchY >= 105 && touchY <= 210){
pool.play(angel_head, 1, 1, 0, 0, 1);
moving_character_angel.clearAnimation();
moving_character_angel.setVisibility(View.INVISIBLE);
moving_character_angel_head.setVisibility(View.VISIBLE);
Log.i("my","start_time");
MatrixTime(1500);
Log.i("my","finish_time");
moving_character_angel_head.setVisibility(View.INVISIBLE);
moving_character_angel.setVisibility(View.VISIBLE);
moving_character_angel.startAnimation(waiting_moving);
}이 코드를 보시면 if 문에 들어와서, 현재 동작하는 애니메이션을 clearAnimation()으로 멈춘다음,이미지를 안보이게 만든 다음, 해당 이벤트에 알맞은 이벤트를 보여줍니다.
그다음 MatrixTime()은 해당 숫자만큼 시간을 delay 시키는 함수로, sleep() 과 동일한 기능을 합니다.
그 다음 해당 이미지를 다시 안보이게 한 다음, 원래 이미지를 보여주며 원래의 애니메이션을 재가동 시키는 코드거든요
근데 여기서 문제는 moving_character_angel_head.setVisibility(View.VISIBLE); 가 호출이 안되는 것처럼 동작을 합니다.
이미지 가져와서 보여주는 것이 생략되고 그냥 시간을 멈춘 후 다음 단계로 가는 것 같은데..
(즉, 이전 코드 작업을 완료도 안 한 채로 다음 코드를 실행하는 걸로 보이는데요; 실제로 애니메이션 작업은 내부적으로 쓰레드를 만들어 돌리는거처럼)
저 MatrixTime이라는 만든 함수를 사용해도 그렇도 sleep 을 사용해도 그렇도 계속해서 제대로 동작을 안하네요 ㅠㅠㅠ
이런 문제를 어떻게 해결해야 할까요??? 힌트를 좀 부탁드립니다~
Entrepreneur, Embedded/Software Engineer



