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

android中的动画

2015-10-27 00:00 666 查看
摘要: TranslateAnimation fromXDelta toXDelta

android

中提供了如下4种动画效果:

1、AlphaAnimation 透明度动画效果

2、ScaleAnimation 缩放动画效果

3、TranslateAnimation 位移动画效果

4、RotateAnimation 旋转动画效果

今天,我们使用位移动画实现应用切换界面的效果:

TranslateAnimation包括:

float fromXDelta 动画开始的点离当前View X坐标上的差值

float toXDelta 动画结束的点离当前View X坐标上的差值

float fromYDelta 动画开始的点离当前View Y坐标上的差值

float toYDelta 动画开始的点离当前View Y坐标上的差值

用法

animation.setDuration(long durationMillis);//设置动画持续时间

animation.setRepeatCount(int i);//设置重复次数

animation.setRepeatMode(Animation.REVERSE);//设置反方向执行

android:duration:运行动画的时间:文档原文为

android:duration


int. The time in milliseconds of the animation. 300ms is the default.

即默认为300毫秒

android:repeatCount:定义动画重复的时间

demo:需求,在android设置向导中,可能你会有需要进入下一页,返回上一页的需求,

接下来我们就是实现它

从左往右滑为

translate_in.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="100%"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0">

</translate>

translate_out.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="-100%"
android:toYDelta="0">

</translate>

使用方法

/*要求在finish()或者startactivity 方法后面执行*/
overridePendingTransition(R.anim.translate_in, R.anim.translate_out);

从右往左滑为:

translate_precede_in.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="-100%"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0">

</translate>

translate_precede_in.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100%"
android:toYDelta="0">

</translate>

使用方法

overridePendingTransition(R.anim.translate_precede_in, R.anim.translate_precede_out);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息