2012-08-10 10 views
0

ImageView 이미지가 있습니다. 이 이미지를 왼쪽에서 오른쪽으로 이동하려면이 이미지를 90 degrease 회전해야합니다. 나는 그것을하는 방법을 관리했다. 내가 사용했다 AnnimationListener 그리고 끝난 후 나는 시작했다 moveAnimation(). 그러나 이미지가 이동하기 전에 원래 모양 (회전 전)으로 돌아갑니다. 회전Android : 애니메이션 회전 및 애니메이션 조합 이동

XML 코드 rotation.xml

<?xml version="1.0" encoding="utf-8"?> 
<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="0" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:toDegrees="90" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="1000" 
    android:startOffset="0" 
/> 

rotateAnimation()

private void rotateAnimation(){ 

     Animation rotation = AnimationUtils.loadAnimation(getContext(), R.anim.rotate); 
     rotation.setRepeatCount(0); 
     rotation.setFillAfter(true); 

     rotation.setAnimationListener(new AnimationListener() { 


     public void onAnimationEnd(Animation animation) { 
      moveAnnimation(); 
     } 
    }); 

moveAnnimation()

 private void moveAnnimation(){ 

    TranslateAnimation moveLefttoRight = new TranslateAnimation(0, 2000, 0, 0); 
     moveLefttoRight.setDuration(1000); 
     moveLefttoRight.setFillAfter(true); 

     moveLefttoRight.setAnimationListener(new AnimationListener() { 

     public void onAnimationStart(Animation animation) { 
      // TODO Auto-generated method stub 

     } 

     public void onAnimationRepeat(Animation animation) { 
      // TODO Auto-generated method stub 

     } 

     public void onAnimationEnd(Animation animation) { 
      // TODO Auto-generated method stub 

     } 
    }); 


    image.startAnimation(moveLefttoRight); 
} 
+0

이미지 회전 및 이동에 사용하는 샘플 코드를 제공 할 수 있습니까? – Shachillies

+0

좋아,하지만 내 의견을 말해. 회전 및 이와 유사한 행렬을 변환을 위해 행렬을 사용해보십시오. 이렇게하면 행렬이 중앙화되고 이미지보기가 재설정되지 않습니다. 행렬 작업을 수행하기 전에 imageview의 속성 scaletype을 행렬로 설정하는 것을 잊지 마십시오. – Shachillies

+0

코드를 추가 plz – haawa

답변

0

당신은 모두 회전과 번역 setFillAfter(true) 필요 Animation obje ct.

If fillAfter is true, the transformation that this animation performed will persist when it is finished. Defaults to false if not set. Note that this applies to individual animations and when using an AnimationSet to chain animations.

다음

Animation.html#setFillAfter(boolean)

당신이 체인 애니메이션 효과를 달성하기 위해 AnimationSet 필요, 내 코드입니다.

public class MainActivity extends Activity { 

    ImageView image = null; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

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

     animateImageView(); 
    } 

    private void animateImageView() { 
     AnimationSet set = new AnimationSet(true); 
     set.setFillAfter(true); 

     Animation rotation = AnimationUtils.loadAnimation(this, R.anim.rotation); 
     TranslateAnimation moveLefttoRight = new TranslateAnimation(0, 200, 0, 0); 
     moveLefttoRight.setDuration(1000); 
     moveLefttoRight.setStartOffset(1000); 

     set.addAnimation(rotation); 
     set.addAnimation(moveLefttoRight); 

     image.startAnimation(set); 
    } 
} 
+0

확실하게 했어! 그것이 문제이다! 내 말은 내가 말하지 않았어. – haawa

+0

코드의 일부분을 보여줄 수 있습니까? 어떻게 애니메이션을 만드나요? – NcJie

+0

나중에 약간의 코드를 추가 하겠지만 짧게 말하면 xml 파일없이 순환 애니메이션과 간단한 애니메이션 애니메이션을위한 xml 애니메이션 파일을 사용합니다. – haawa

관련 문제