Android常用アニメーションViewGroupの使用
4280 ワード
View Groupは、Viewサブクラスを含むコンテナであり、SDKドキュメントからはLayoutと一部のViewの親であることがわかり、View GroupでLayoutを削除するコントロールを追加することができます.以下では、ViewGroupでアニメーション効果で画像を追加して削除する方法を見てみましょう.
レイアウトファイルxmは2つのボタンと1枚の画像を定義します.
Activityファイル
点でピクチャを削除すると、まずフェードアウト効果が実行され、アニメーションが終了するとアニメーションリスナーでピクチャが削除されます.
ソースのダウンロード
クリックしてリンクを開く
レイアウトファイルxmは2つのボタンと1枚の画像を定義します.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutId"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/add"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text=" "/>
<Button
android:id="@+id/delete"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/add"
android:text=" "/>
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
</RelativeLayout>
Activityファイル
package com.example.animation;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.widget.Button;
import android.widget.ImageView;
import com.example.widgetdemo.R;
public class AnimationViewGroup extends Activity {
private Button add = null;
private Button delete = null;
private ImageView image = null;
private ViewGroup viewGroup = null;
private boolean isExist = true; // true ,
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.viewgroup);
add = (Button) findViewById(R.id.add);
delete = (Button) findViewById(R.id.delete);
image = (ImageView) findViewById(R.id.image);
viewGroup = (ViewGroup) findViewById(R.id.layoutId);
add.setOnClickListener(new addListener());
delete.setOnClickListener(new deleteListener());
}
/**
*
*
* @author Administrator
*
*/
private class addListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(!isExist){
AlphaAnimation alpha = new AlphaAnimation(0.0f, 1.0f);
alpha.setDuration(1000); //
alpha.setStartOffset(500); // 500ms
image.setImageResource(R.drawable.ic_launcher);
viewGroup.addView(image, new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
image.setAnimation(alpha);
isExist = true;
}
}
}
/**
*
*
* @author Administrator
*
*/
private class deleteListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(isExist){
AlphaAnimation alpha = new AlphaAnimation(1.0f, 0.0f);
alpha.setDuration(1000); //
alpha.setStartOffset(500); // 500ms
alpha.setAnimationListener(new RemoveAnimationListener()); //
image.setAnimation(alpha);
isExist = false;
}
}
}
private class RemoveAnimationListener implements AnimationListener {
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
System.out.println("End");
viewGroup.removeView(image); //
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
System.out.println("Repeat");
}
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
System.out.println("Start");
}
}
}
点でピクチャを削除すると、まずフェードアウト効果が実行され、アニメーションが終了するとアニメーションリスナーでピクチャが削除されます.
ソースのダウンロード
クリックしてリンクを開く