2013-02-25 2 views
3

저는 Main과 Info의 두 가지 활동이있는 앱을 만들고 있습니다. 응용 프로그램은 MainActivity로 시작되며 버튼을 클릭하면 InfoActivity가 오른쪽에서 슬라이드됩니다. 다른 단추를 클릭하면 InfoActivity가 다시 오른쪽으로 밀려 나오고 Main이 반환됩니다.안드로이드에서 ActivityOptions를 통해 finish()를 어떻게 애니메이트합니까?

buttonInfo.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     Intent i = new Intent(getApplicationContext(), Info.class); 
     Bundle mAnimate = 
      ActivityOptions.makeCustomAnimation(getApplicationContext(), 
      R.anim.ani1,R.anim.ani2).toBundle(); 

      startActivity(i,mAnimate); 
      } 
     }); 

내가 InfoActivity에서이 유사한했다, 잘 작동이 내가 애니메이션 및 MainActivity에서 버튼 클릭을 구현하는 방법이다

. 그러나, 나는 startActivity를 호출 할 때 연결을 끊는 MainActivity에서 서버 연결을 가지고 있기 때문에, 의도와 함께 startActivity 대신 finish()를 호출해야한다.

그런 아이디어를 어떻게 finish() 메서드 또는 다른 제안에 적용 할 수 있습니까?

답변

12

으로, 당신은이 애니메이션 후 활동을 마무리한다

@Override 
public void finish() { 
    super.finish(); 
    overridePendingTransition(R.anim.ani2, R.anim.ani1); 
} 
+0

덕분에 많은 도움이되었습니다! – micha

-3
Bundle options = ActivityOptionsCompat.makeCustomAnimation(this,R.anim.ani1,R.anim.ani2).toBundle(); 
ActivityCompat.startActivity(this, intent, options) 
6

사용

 ActivityCompat.finishAfterTransition(this); 

를 사용하여 Info.class의 마무리() 메소드를 대체 할 수 DevBytes: Window Animations 연습에 설명