2011-08-12 5 views
3

화면 오른쪽 상단의 이미지를 가져 와서 30 % 지점으로 이동하고 원을 그리며 가장자리로 다시 이동하는 간단한 애니메이션을 설정하려고합니다. 아래 그림을 참조하십시오. 그러나 현재 스크립트는 이상한 일을 처리하고 올바른 장소에서 끝나기 전에는 거의 아무것도 보이지 않습니다. 또한 Android 버전 및 화면 크기에 따라 더 많은 사나운 일을 할 수도 있습니다. 어떤 도움이라도 대단히 감사 할 것입니다. 감사!애니메이션 문제

enter image description here

핵심 포인트의 커플. 나는 시작의 왼쪽 가장자리가 항상 움직임의 방향에 직면하고 싶다. 나는 왼쪽에서 오른쪽으로 움직이는 원 운동을 원하지만, 끝날 수 없다면, 첫 번째 부분이 진실이라면 나는 그것에 붙이지 않을 것이다.

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:shareInterpolator="true"> 
    <set> 
     <translate 
      android:fromXDelta="0%p" android:toXDelta="0%p" 
      android:fromYDelta="00%p" android:toYDelta="20%p" 
      android:duration="001" android:startOffset="0"/> 
     <translate 
      android:fromXDelta="0%p" android:toXDelta="-80%p" 
      android:fromYDelta="00%p" android:toYDelta="0%p" 
      android:duration="2000" android:startOffset="1"/> 
    </set> 
    <set> 
     <rotate 
      android:fromDegrees="180" 
      android:toDegrees="0" 
      android:pivotY="20%p" 
      android:duration="1000" 
      android:startOffset="2000"/> 
     <translate 
      android:fromXDelta="0%p" android:toXDelta="70%p" 
      android:fromYDelta="00%p" android:toYDelta="0%p" 
      android:duration="100" 
      android:startOffset="3000"/> 
    </set> 
</set> 

답변

2

에 사용 된 코드입니다 주요 XML 레이아웃에 버튼이있는 새로운 안드로이드 프로젝트. 그것은 효과가 있었다. 모든 비율은 뷰의 위치를 ​​기준으로 부모 크기입니다.

<?xml version="1.0" encoding="utf-8"?> 

<set xmlns:android="http://schemas.android.com/apk/res/android" > 

<translate android:fromXDelta="0%p" android:toXDelta="-80%p" 
    android:fromYDelta="0%p" android:toYDelta="0%p" 
    android:duration="2000" /> 

<rotate android:fromDegrees="0" android:toDegrees="-180" 
     android:pivotX="-70%p" android:pivotY="10%p" android:duration="1000" 
     android:startOffset="2000" /> 

<translate 
    android:fromXDelta="0%p" android:toXDelta="80%p" 
    android:fromYDelta="0%p" android:toYDelta="0%p" android:duration="2000" 
    android:startOffset="3000" /> 

</set> 
+0

나는이 조합을 시도했다고 생각 했었지만, 그것에 관해서는 뭔가 잘 작동하지 않았다. 아마도 linear interpolater를 사용했을 때 무언가가 발생했을 것이다. 가능한 경우 현상금을 수여합니다. 도와 주셔서 감사합니다! – PearsonArtPhoto

+0

사실 모든 버전에서 체크 아웃했습니다. 그것은 2.1 및 이전 버전에서 잘 작동합니다. 2.2 이상에서 재미있는 일을합니다 ... 특히 첫 번째 번역의 경우 잘못된 방향으로 이동합니다 (올바른 위치에서 끝나기는하지만). 아직도, 그것은 지금까지 내가 가진 것 이상의 개선입니다. – PearsonArtPhoto

+0

어떤 버전을 타겟팅하고 있습니까 ?? – Ronnie

0

도면에 설명 된 애니메이션을 만들려고했습니다. 나는

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:shareInterpolator="true"> 
    <set> 
     <translate 
      android:fromXDelta="0%p" android:toXDelta="-80%p" 
      android:fromYDelta="00%p" android:toYDelta="0%p" 
      android:duration="2000" android:startOffset="0"/> 
     <translate 
      android:fromXDelta="0%p" android:toXDelta="0%p" 
      android:fromYDelta="00%p" android:toYDelta="20%p" 
      android:duration="2000" android:startOffset="2000"/>   
    </set> 
</set> 

right.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="-80%p" android:toXDelta="0%p" android:fromYDelta="20%p" 
    android:toYDelta="20%p" android:duration="2000" android:fillAfter="true"/> 

left_down.xml 2 개 파일 에 애니메이션을 분할 그리고 이것은 내가 내가이 짓 활동

image = (ImageView)findViewById(R.id.image); 

     anim = AnimationUtils.loadAnimation(this, R.anim.left_down); 
     goBack = AnimationUtils.loadAnimation(this, R.anim.right); 
     anim.setAnimationListener(new AnimationListener() {    
      @Override 
      public void onAnimationStart(Animation animation) {} 

      @Override 
      public void onAnimationRepeat(Animation animation) {} 

      @Override 
      public void onAnimationEnd(Animation animation) { 
       image.startAnimation(goBack);  
      } 
     }); 
image.startAnimation(anim); 
+0

나는 그것을 충분히 그리지 않았지만, 이상적으로는 서서히 왼쪽으로 직면하여 오른쪽으로 직면하여 서서히 움직이고, 다른 방향으로 향하고 오른쪽으로. 즉, 항상 동작 방향에 직면합니다. 더 잘 설명하기 위해 내 질문을 편집 할 것입니다. – PearsonArtPhoto