Android view动画之平移动画
程序员文章站
2022-06-15 14:54:54
...
方法一
用 AnimationUtils 和 xml 的方式,加载指定的平移动画。
setAnimationListener 是监听动画的过程。
Animation translateAnimation = AnimationUtils.loadAnimation(mContext, R.anim.translate_animation);
translateAnimation.setFillAfter(true);
translateAnimation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
mImageView.startAnimation(translateAnimation);
translate_animation.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!--
android:fromXDelta
Float or percentage. 移动起始点的x坐标. 表示形式有三种:
1 相对于自己的左边界的距离,单位像素值。(例如 "5")
2 相对于自己的左边界的距离与自身宽度的百分比。(例如 "5%")
3 相对于父View的左边界的距离与父View宽度的百分比。(例如 "5%p")
android:toXDelta
Float or percentage. 移动结束点的x坐标. 表现形式同上
android:fromYDelta
Float or percentage. 移动起始点的y坐标. 表示形式有三种:
1 相对于自己的上边界的距离,单位像素值。(例如 "5")
2 相对于自己的上边界的距离与自身高度的百分比。(例如 "5%")
3 相对于父View的上边界的距离与父View高度的百分比。(例如 "5%p")
android:toYDelta
Float or percentage. 移动结束点的y坐标. 表现形式同上
-->
<translate
android:duration="2000"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100%"
android:toYDelta="0" />
</set>
效果,y轴不变,x轴向右平移,平移距离是这个图片的宽度。
方法二
直接使用 TranslateAnimation 设置,
TranslateAnimation translateAnimation1 = new TranslateAnimation(0,100, 0, 0);
translateAnimation1.setFillAfter(true);
mImageView.startAnimation(translateAnimation1);
效果,y轴不变,x轴向右平移 100 。
方法三
属性动画实现,
//利用AnimatorSet和ObjectAnimator实现平移动画
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(
ObjectAnimator.ofFloat(mImageView, "translationX", 20, 100).setDuration(2000),
ObjectAnimator.ofFloat(mImageView, "translationY", 20, 100).setDuration(2000));
animatorSet.start();