2012年2月16日木曜日
Androidで簡易アニメーション
OpenGLやSurfaceViewを使わずに、簡単にアニメーションさせるにはTranslateAnimationやRotateAnimationを使います。
ここから下はサンプルソースです。
package com.sample.animation;//ここは各自変更して下さい
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.animation.RotateAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
public class AnimationTestActivity extends Activity {//ここも各自変更して下さい
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//背景になる緑色のレイアウト
LinearLayout greenLinearLayout = new LinearLayout(this);
//緑色に設定
greenLinearLayout.setBackgroundColor(Color.GREEN);
//平行移動するレイアウト
LinearLayout redLinearLayout = new LinearLayout(this);
//赤色に設定
redLinearLayout.setBackgroundColor(Color.RED);
//横幅、縦幅
redLinearLayout.setLayoutParams(new LayoutParams(300, 300));
//アニメーションを設定
TranslateAnimation redAnimation =
new TranslateAnimation(100, 100, 0, 330);//x始点、x終点、y始点、y終点
//アニメーションする時間 4000ミリ秒 = 4秒間アニメーションする
redAnimation.setDuration(4000);
//レイアウトにアニメーションを設定
redLinearLayout.setAnimation(redAnimation);
//回転するビュー
TextView blueView = new TextView(this);
//横幅、縦幅
blueView.setLayoutParams(new LayoutParams(150, 150));
//青色に設定
blueView.setBackgroundColor(Color.BLUE);
blueView.setText("回転移動");
//開始角度、終了角度、中心点x、中心点y
RotateAnimation blueAnimation = new RotateAnimation(0, 360, 150, 150);
//アニメーションする時間 4000ミリ秒 = 4秒間アニメーションする
blueAnimation.setDuration(4000);
//ビューにアニメーションを設定
blueView.setAnimation(blueAnimation);
//ビューの親子関係を設定。
//アクティビティに親の緑色レイアウトを設定
setContentView(greenLinearLayout);
//緑色レイアウトに子の赤色レイアウトを設定
greenLinearLayout.addView(redLinearLayout);
//赤色レイアウトに孫青色ビューを設定
redLinearLayout.addView(blueView);
}
}
登録:
コメントの投稿 (Atom)
自分はSurfaceViewばかり使ってますから
返信削除レイアウトを使ったプログラムは参考になりますね。
仕事でSurfaceViewを使わないアニメーションを作ることがあったので、載せてみました。ひとくくりにアニメーションといっても色々なやり方がありますね。
返信削除