1、简介

在上一篇中,详细讲解了Android补间动画 - 缩放动画的具体实现,补间动画的其他动画实现方式很类似,能够将一个掌握透彻,其他也就迎刃而解,本篇文章主要讲解属性动画-平移动画的具体实现,同时也会概况属性动画的其他几种类型,相信看完本篇文章会对属性动画有一个全面的认识。

话不多说,我们仍然以一个实例来讲解,具体效果图如下:

2、具体实现

对于属性动画的实现,我们可以不用在xml文件中实现具体动画效果,直接通过代码即可实现。

上图中,xml布局文件非常简单,一个button和一个view,这里就不再粘贴布局文件,仅仅提供java中的关键代码。

// 属性动画-平移private void startPopsAnimTrans(){   if(objectAnimatorX == null){       float [] x= {0f,60f,120f,180f};       objectAnimatorX = ObjectAnimator.ofFloat(scaleAnimView,"translationX", x);       objectAnimatorX.setDuration(2000);   }   objectAnimatorX.start();}

代码非常简单,仅仅几行即可实现,下面我们来分析ofFloat几个参数具体代表什么意思?

  • 第一个参数

第一个参数,很明显,就是需要将动画作用于哪个对象上面即哪个View上面,直接传对应的View即可。

  • 第二个参数

第二个参数为一个字符串,表示要实现的属性动画,可取值有:

alpha                       // 实现渐变效果
rotation                    // 实现旋转旋转效果
translationX             // 实现水平移动效果(左或右移动)
translationY             // 实现纵向移动效果(向上或者向下移动)
scaleX                     // 实现轴X缩放效果(放大或者缩小)
scaleY                     // 实现轴Y缩放效果(放大或者缩小)

  • 第三个参数

第三个参数表示动画的具体效果,第三个参数是一个数组,数组的元素可以是1个、2个、3个或多个,下面我以当第二个参数为translationX进行具体说明:

当float [] x= {60f},view会在原有的基础上向右平移60px;

当float [] x= {0f, 60f},view 会从0点(即view在布局中最初的位置)开始向右平移60px;

当float [] x= {0f, 60f, 0f},view从0点开始向右平移60px,在回到0点位置;

当float [] x= {0f, 60f, 80f, 100f, ……}, view从0点开始向右平移60px再平移80px,再平移100px ……;

需要注意的是,对于平移可以是大于1或小于-1这样的数,如果当为alpha时,取值区间为0-1。

属性动画与补间动画有一个重要区别就是,补间动画对View的操作并不会改变View的实际位置,例如当对View添加点击事件,只有最开始的位置点击有效,但是属性动画,对View的位置做了实际的变化,点击的位置会随View的移动而移动。

3、其他案例

很多情况下,我们想让一个按钮能够随着某一系列坐标点进行移动,这就涉及到多个属性动画的组合,例如下图效果:

具体代码如下:

private void startPopsAnimTrans(){   if(objectAnimatorX == null){      float [] x= {0f,60f,120f, 240f};      float [] y= {0f,30f,220f,90f};      objectAnimatorX = ObjectAnimator.ofFloat(scaleAnimView,"translationX", x);      objectAnimatorX.setDuration(2000);      objectAnimatorY = ObjectAnimator.ofFloat(scaleAnimView,"translationY", y);      objectAnimatorY.setDuration(2000);   }   objectAnimatorX.start();   objectAnimatorY.start();}

这里对Android属性动画中的平移动画讲解到此,相信通过此篇文章,对平移动画的使用有全面的了解。

更多相关文章

  1. Android(安卓):为你的启动页面SplashActivity 添加动画的几种方法
  2. Android(安卓)Matrix的使用与自定义动画
  3. Android(安卓)XML 中schema和自定义属性的关系
  4. 初学Android,手势翻页效果(四十九)
  5. 在Android中动画移动一个View的位置,采用Scroller类实现Android动
  6. Android(安卓)材料设计
  7. Android(安卓)Matrix类以及ColorMatrix类详解
  8. android 属性系统,SystemProperties 的简介---转载
  9. Android属性动画(下),InterPolator、ViewPropertyAnimator和布局动

随机推荐

  1. 给android imageView(图片) 添加超链接
  2. Android文本闪烁
  3. Android中文翻译 - AbstractAccountAuthe
  4. Android中获取指定包名下的所有类
  5. windows 下安卓开发环境配置
  6. Android(安卓)RecyclerView 二级列表实现
  7. 编译Android下纯C的静态程序,undefined r
  8. 解决MainActivity.onCreate(Unknown Sour
  9. Android(安卓)8.0 启动Service适配(Not a
  10. Android获取内部和外部内存空间大小