您的位置:首页 > 移动开发 > Android开发

Android中Tween动画和Frame动画实例

2014-07-30 13:14 176 查看
Animation主要有两种动画模式:Tween动画和Frame动画

[b]Tween动画由四种类型组成

[/b]

alpha

渐变透明度动画效果

scale

渐变尺寸伸缩动画效果

translate

画面转换位置移动动画效果

rotate

画面转移旋转动画效果
res目录下新建anim创建Tween.xml



[html] view
plaincopy

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

<!-- 透明 -->

<alpha

android:fromAlpha="1"

android:toAlpha="0"

android:duration="3000"

/>

<!-- 旋转 -->

<rotate

android:fromDegrees="0"

android:toDegrees="360"

android:pivotX="50%"

android:pivotY="50%"

android:duration="3000"

/>

<!-- 缩放 -->

<scale

android:fromXScale="1"

android:fromYScale="1"

android:toXScale="3"

android:toYScale="3"

android:pivotX="0"

android:pivotY="0"

android:duration="3000"

/>

<!-- 移动 -->

<translate

android:fromXDelta="0"

android:fromYDelta="0"

android:toXDelta="50%p"

android:toYDelta="50%p"

android:duration="3000"

/>

</set>

以上每个动画效果可放在不同的xml文件中已方便查看效果

[b]下边是Activity中调用动画[/b]

[java] view
plaincopy

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

imageView = (ImageView) findViewById(R.id.img);

}

public void onClick(View view) {

Animation animation = null;

switch (view.getId()) {

case R.id.alpha:

animation = AnimationUtils.loadAnimation(this, R.anim.alpha);

break;

case R.id.scale:

animation = AnimationUtils.loadAnimation(this, R.anim.scale);

break;

case R.id.translate:

animation = AnimationUtils.loadAnimation(this, R.anim.translate);

break;

case R.id.rotate:

//animation = AnimationUtils.loadAnimation(this, R.anim.rotate);

//令一种方式JavaCode中 创建RotateAnimation

animation = new RotateAnimation(0, 180, RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f);

animation.setDuration(3000);

break;

case R.id.all:

animation = AnimationUtils.loadAnimation(this, R.anim.Tween);

break;

}

//启动动画

imageView.startAnimation(animation);

}


Tween动画由四种类型组成

帧动画是有多张图片组成,多张图片循环。

示例:

[b][b]Frame.xml[/b][/b]



[html] view
plaincopy

<?xml version="1.0" encoding="utf-8"?>

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">

<item android:drawable="@drawable/p1" android:duration="200" />

<item android:drawable="@drawable/p2" android:duration="200" />

<item android:drawable="@drawable/p3" android:duration="200" />

<item android:drawable="@drawable/p4" android:duration="200" />

<item android:drawable="@drawable/p5" android:duration="200" />

<item android:drawable="@drawable/p6" android:duration="200" />

<item android:drawable="@drawable/p7" android:duration="800" />

<item android:drawable="@drawable/p8" android:duration="200" />

<item android:drawable="@drawable/p9" android:duration="200" />

<item android:drawable="@drawable/p10" android:duration="200" />

<item android:drawable="@drawable/p11" android:duration="200" />

</animation-list>

main.xml



[html] view
plaincopy

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<ImageView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@anim/frame"

android:onClick="go"

/>

</LinearLayout>

Activity:



[java] view
plaincopy

public void go(View view) {

// 获取ImageView

ImageView imageView = (ImageView) view;

// 获取ImageView上面的动画图片

AnimationDrawable drawable = (AnimationDrawable) imageView.getDrawable();

// 动画开始
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: