AndroidでのTransitionDrawableの使用
2615 ワード
1、TransitionDrawableとは何ですか
TransitionDrawableは特殊なDrawableオブジェクトで、2つのdrawableリソース間のフェードアウト効果を実現します.
2、TransitionDrawableのXmlファイル定義
ノードの下の各- はdrawableリソースを表します.
- は2つしかありません.以前にstartTransition()を呼び出しました.後ろに、reverseTransition()を呼び出します.
次に例を示します.
1、xml方式使用
layoutで使用する:
コードでの制御:
次にTransitionDrawableを使用する例を挙げて、Androidプロジェクトを作成し、このプロジェクトに基づいて修正します.修正過程は以下の通りです.1、layout/mainを削除します.xmlのTextViewは、ImagViewを追加し、以下のようにします.
2、XMLファイルを作成し、expand_と命名するcollapse.xml、内容は以下の通りです.
3枚のpng画像が必要で、resdrawableディレクトリの下に保存して、3枚の画像はそれぞれ:my_と命名しますimage.png、image_expand.png、image_collapse.png.
3、Activityのコードを修正します.内容は以下の通りです.
TransitionDrawableは特殊なDrawableオブジェクトで、2つのdrawableリソース間のフェードアウト効果を実現します.
2、TransitionDrawableのXmlファイル定義
次に例を示します.
1、xml方式使用
transition.xml:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/image01"/>
<item android:drawable="@drawable/image02"/>
</transition>
layoutで使用する:
<ImageView
android:id="@+id/imgView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/transition" />
コードでの制御:
ImageView imageView = (ImageView) findViewById(R.id.imgView);
TransitionDrawable transitionDrawable = (TransitionDrawable) imageView.getDrawable();
transitionDrawable.startTransition(3000)
次にTransitionDrawableを使用する例を挙げて、Androidプロジェクトを作成し、このプロジェクトに基づいて修正します.修正過程は以下の通りです.1、layout/mainを削除します.xmlのTextViewは、ImagViewを追加し、以下のようにします.
<ImageView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:tint=”#55ff0000″
android:src=”@drawable/my_image”/>
2、XMLファイルを作成し、expand_と命名するcollapse.xml、内容は以下の通りです.
<?xml version=”1.0″ encoding=”UTF-8″?>
<transition xmlns:android=”http://schemas.android.com/apk/res/android”>
<item android:drawable=”@drawable/image_expand”/>
<item android:drawable=”@drawable/image_collapse”/>
</transition>
3枚のpng画像が必要で、resdrawableディレクトリの下に保存して、3枚の画像はそれぞれ:my_と命名しますimage.png、image_expand.png、image_collapse.png.
3、Activityのコードを修正します.内容は以下の通りです.
LinearLayout mLinearLayout;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mLinearLayout = new LinearLayout(this);
ImageView i = new ImageView(this);
i.setAdjustViewBounds(true);
i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
mLinearLayout.addView(i);
setContentView(mLinearLayout);
Resources res = getResources();
TransitionDrawable transition =
(TransitionDrawable) res.getDrawable(R.drawable.expand_collapse);
i.setImageDrawable(transition);
transition.startTransition(10000);
}