2011年8月13日土曜日

Android TransitionDrawable を使う

TransitionDrawableLayerDrawble の拡張で、2つのレイヤーの間をクロスフェードさせることが可能。

主なメソッドは次の3つ


次のコンストラクタで Drawable の配列を渡して生成することもできるし

TransitionDrawable(Drawable[] layers)

<transition> タグを使って XML で定義することもできる。

例えばこんな感じ
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <transition xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <item android:drawable="@drawable/trash"  />  
  4.     <item android:drawable="@drawable/trash2"  />  
  5. </transition>  


  1. public class TransitionDrawableSampleActivity extends Activity {  
  2.   
  3.     TransitionDrawable mTransitionDrawable;  
  4.       
  5.     private static final int TRANSITION_DURATION = 1000;  
  6.   
  7.     @Override  
  8.     public void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10.         setContentView(R.layout.main);  
  11.           
  12.         ImageView iv = (ImageView)findViewById(R.id.imageview);  
  13.         mTransitionDrawable = (TransitionDrawable)iv.getDrawable();  
  14.         mTransitionDrawable.setCrossFadeEnabled(false);  
  15.     }  
  16.       
  17.     public void onResetClick(View v) {  
  18.         mTransitionDrawable.resetTransition();  
  19.     }  
  20.       
  21.     public void onTransitionClick(View v) {  
  22.         mTransitionDrawable.startTransition(TRANSITION_DURATION);  
  23.     }  
  24.       
  25.     public void onReverseClick(View v) {  
  26.         mTransitionDrawable.reverseTransition(TRANSITION_DURATION);  
  27.     }  
  28. }  







0 件のコメント:

コメントを投稿