본문 바로가기

나의 플랫폼/안드로이드

[Android] Fragment transition 이용시

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

SomeFragment fragment = SomeFragment.newInstance(bitmap);
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
fragment.setSharedElementEnterTransition(new DetailsTransition());
fragment.setEnterTransition(new Fade());
fragment.setExitTransition(new Fade());
fragment.setSharedElementReturnTransition(new DetailsTransition());

ft.addSharedElement(view, "SomeImage");
ft.replace(R.id.main_container_, fragment);
ft.addToBackStack(null);
ft.commit();

} else {
ft.setCustomAnimations(R.anim.fade_in, R.anim.fade_out);
ft.replace(R.id.main_container_, fragment, "SomeImage");
ft.addToBackStack(null);
ft.commit();

}


Fragment로 화면 이동 시, 서버에서 받은 Bitmap가 함께 이동할때 위 소스를 주로 사용 합니다.


이때 원하는 퍼포먼스가 잘 안나오고, 이상하게 동작을 할 때가 있습니다.


여러번 테스트를 해보니, 공유하는 Bitmap이 Memory 상에 올려져 있지 않을 상태라면 로딩 딜레이 때문에

움직임에 부작용이 생기더라구요.


따라서, Fragment로 공유하고자 하는 Bitmap은 전역변수와 같이 미리 Memory에 올려놓은 상태에서

이용을 하면 원하는 동작이 잘 이루어 졌습니다.


이건 어디서 찾아본 것 보단 제가 직접 테스트 하여 얻은 결론 입니다.

참고하세요.


## 이블로그는 어디까지는 찾았던 부분을 잊지 않기 위해 올려놓은 것 입니다.

    내용이 부실해도 이해해 주시길 바랍니다.