2011-11-23 2 views
0

이미지가 있습니다. 버튼을 클릭하면 번역 애니메이션이 이미지에서 발생하여 왼쪽으로 밀면 이미지의 일정 비율 만 보입니다.번역 후 이미지의 절대 위치 얻기 애니메이션

번역 애니메이션이 발생한 후 이미지의 위치를 ​​얻을 수있는 방법이 있습니까? OnAnimationEnd 메서드에서 애니메이션 리스너를 사용하고 무언가를 할 수 있다는 것을 알았습니다. 그러나 여기에 무엇을해야할지 모르겠다. ...

이미지가 이동 한 위치를 얻고 이미지의 레이아웃 매개 변수로 설정하는 방법은 어떻게됩니까?

정말 여기에서 당신의 도움을 사용할 수 있습니다.

답변

0

현재 이미지 위치가 x, y라고 가정합니다. x 방향 100, y 방향 50으로 움직입니다. 따라서 현재 위치는 newx = x + 100, newy = y + 50입니다. 레이아웃을 사용하여 onAnimationEnd 메소드 내에 이미지를 배치합니다.

TranslateAnimation TAnimation=new TranslateAnimation(0, 100, 0, 50)   
    TAnimation.setDuration(2000); 
    TAnimation.setFillAfter(true); 
    Image.startAnimation(TAnimation); 
TAnimation.setAnimationListener(new AnimationListener() { 

     public void onAnimationStart(Animation animation) { 

     } 

     public void onAnimationRepeat(Animation animation) { 

     } 

     public void onAnimationEnd(Animation animation) { 

      RelativeLayout RL=(RelativeLayout)findViewById(R.id.rl); 
       param=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
      param.setMargins(x+100, y+50, 0, 0); 
       Image.setLayoutParams(param); 

     } 
    }); 
0

나는이 질문이 오래되었지만 누군가를 도울 수 있음을 알고 있습니다. 당신은 추가 할 수 있습니다

animation.setFillAfter(true); 

또는 XML에

설정 : 그거야

fillAfter = "true" 

합니다. 보기가 새로운 위치에있게합니다.