2011年8月13日土曜日

Android TransitionDrawable を使う

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

主なメソッドは次の3つ


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

TransitionDrawable(Drawable[] layers)

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

例えばこんな感じ

<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/trash" />
<item android:drawable="@drawable/trash2" />
</transition>



public class TransitionDrawableSampleActivity extends Activity {

TransitionDrawable mTransitionDrawable;

private static final int TRANSITION_DURATION = 1000;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ImageView iv = (ImageView)findViewById(R.id.imageview);
mTransitionDrawable = (TransitionDrawable)iv.getDrawable();
mTransitionDrawable.setCrossFadeEnabled(false);
}

public void onResetClick(View v) {
mTransitionDrawable.resetTransition();
}

public void onTransitionClick(View v) {
mTransitionDrawable.startTransition(TRANSITION_DURATION);
}

public void onReverseClick(View v) {
mTransitionDrawable.reverseTransition(TRANSITION_DURATION);
}
}







0 件のコメント:

コメントを投稿