2014-11-18 1 views
1

XML에서 반복되는 애니메이션을 어떻게 지연시킬 수 있습니까?반복되는 전체 XML 애니메이션 지연

<!-- wobbling animation --> 
<translate 
    android:fromXDelta="0" 
    android:toXDelta="10" 
    android:duration="50" 
    android:repeatCount="5" 
    android:repeatMode="reverse" 
    android:interpolator="@android:anim/accelerate_interpolator"/> 

이 애니메이션은보기를 앞뒤로 빠르게 흔들 립니 다. 일정 시간 (1000ms) 후에 실행하고 싶습니다. 여기에 startOffset을 추가하면 모든 변환이 아닌 오프셋에 의해 각 변환이 지연됩니다.이 문제를 해결하는 쉬운 방법이 있습니까? 나는 XML에도 다른 애니메이션을 넣을 작정이다.

편집 : 명확성을 위해 : 여기에 1000ms의 시작 오프셋을 추가하면 애니메이션이 1000ms를 기다리고, 50ms가 넘게 슬라이드하고, 또 다른 1000ms를 기다리고, 뒤로 슬라이드하고, 다시 기다리는 등의 애니메이션을 생성합니다. 한번만 기다려주세요.

답변

2

이 같은 애니메이션이다과 같이 startOffset를 사용할 수 없습니다의 일시 정지 후 발생하는 것이다 온 클릭에 의해 일어날 것 아무것도. forward/reverse 애니메이션으로 나누고 forward XML (모든 XML)을 오프셋하거나 제안 된대로 코드 블록에서 Handler를 사용할 수 있습니다.

+0

그건 부끄러운 일입니다. D 적어도 지금은 알아요! –

+0

또 다른 방법은'Animation' 클래스를 확장하고 재사용을 위해'startOffset (long delay)'를 오버라이드하는 것입니다. – dobridog

0
@Override 
public void onClick(View v) { 

//sleep for x milliseconds 
Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    public void run() { 
      //do your stuff here 
    } 
}, x); 

} 여기

, X 밀리 초

+0

안녕 히라클, 내가 원하는 동작을 생성하지 않는 방법을 언급하는 비트를 굵은 글씨로 표시했습니다. –

+0

오 .. .. 보이지 않는 것을 알기를 바랍니다.하지만 "startOffset"은 정확히 각 오프셋을 오프셋으로 지연시킵니다. 모든 일"? 나는 무엇을 의미하니? –

+0

지속 시간이 50ms로 설정되어 있으므로이 애니메이션은 50ms 이상 오른쪽으로 슬라이드 한 다음 50ms 이상 지난 다음 반복됩니다. 1000ms의 시작 오프셋을 추가하면 1000ms를 기다리고, 50ms 이상 오른쪽으로 슬라이드하고, 또 다른 1000ms를 기다리고, 뒤로 슬라이드하고, 다시 기다리는 등의 애니메이션을 만듭니다. 한번만 기다려주세요. –