본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] TransitionDrawable 을 잘 쓰면 훌륭한 애니메이션이 될 수 있다.

by 돼지왕 왕돼지 2013. 10. 1.
반응형


 TransitionDrawable 을 잘 쓰면 훌륭한 애니메이션이 될 수 있다.

 

[android] TransitionDrawable 을 잘 쓰면 훌륭한 애니메이션이 될 수 있다.


TransitionDrawable 의 존재는 익히 알고 있었으나, 드디어 테스트를 해 보았다.


TransitionDrawable 은 2개의 이미지를 setting 해놓고 transition 을 시키면, fade in, fade out 효과처럼 이미지가 교체된다. 더 놀라운 것은 매우 부드럽게 된다는 것이며, 2개 이상의 이미지도 충분히 소화할 수 있고, 수치만 바꿈으로서 바뀌는 속도를 쉽게 조절할 수 있다.


자 이 위대한 녀석이 얼마나 간단하게 구현되는지

예제 코드 ( example code ) 를 통해서 알아보자.


<xml>

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

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


    <item android:drawable="@drawable/btn_close_pressed"/>

    <item android:drawable="@drawable/btn_close"/>


</transition>


<Java Code>

ImageView imageView = new ImageView( this );

TransitionDrawable td = (TransitionDrawable) getResources().getDrawable( R.drawable.transition_ex );
imageView.setImageDrawable( td );
td.startTransition( 1000 );


핵심은 이거다.


1. xml 에서<transition> 으로 정의하고, transition 이 수행될 이미지들을 <item> 으로 정의한다.


2. ImageView 에 넣기 전에 TransitionDrawable 로 불러오고, startTransition( long ) 을 통해서 transition 이 일어나는 시간을 정의한다.







이걸로 끝!!!!


여러분도 테스트해보시길, 간단하게 fade in, fade out 을 정의하기에 아주 좋은 녀석이다.


아!! 물논논논!! 

new TransitionDrawable( Drawable[] ) 을 통해서 dynamic 하게 drawable 들을 지정할 수도 있다.


한가지 우려되는 것은 성능이슈인데.. 음.. 성능이슈는 따로 테스트가 되어야 할 것 같다.






반응형

댓글