前段时间,公司新开发的VR找房,需要用到一个标示VR房源的动画控件,效果图是下面这种动画效果:

首先分析GIF图得知,这组动画又一个圆圈和上下两个扇形组成,通过改变扇形图片的透明度,和位移来实现动画效果。
然后我们在布局中先定义3个ImageView来组合这个动画中的元素:

         

然后通过对其中的两个ImageView控件添加相关的属性动画来实现设计图效果,
1.通过分析得知,上面的扇形,同时向左偏移自身的1/10和向下移动自身的1/10,同时改变自身透明度,然后在回归原位。
2.下面的扇形移动轨迹和上面相反,向右移动自身的1/10和向下移动自身的1/10,同时改变自身透明度,然后在归位。

  var xAnimation =            ObjectAnimator.ofFloat(                this,                "translationX",                translationX,                width / 10 * -1f,                width / 10 * -1f,                width / 10 * -1f,                translationX            )        var yAnimation =            ObjectAnimator.ofFloat(                this,                "translationY",                translationY,                height / 10f,                height / 10f,                height / 10f,                translationY            )        var alphaAnimator = ObjectAnimator.ofFloat(this, "alpha", 0.6f, 1f, 1f, 1f, 0.6f)        xAnimation.startAnimator()        yAnimation.startAnimator()        alphaAnimator.startAnimator()

我们可以定义3个不同的属性动画分别来表示横向位移,竖线位移和透明度变化动画,当然在sdk21以上的话还可以同时控制横向和竖向相关的动画来实现效果,不用分别建立横向和竖向动画:

   var animation= if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            var path=Path()            path.moveTo(translationX,translationY)            path.lineTo(width / 10f, -1 * height / 10f)            path.lineTo(translationX,translationY)            ObjectAnimator.ofFloat(this,"translationX","translationY",path )        } else {            TODO("VERSION.SDK_INT < LOLLIPOP")        }

更多相关文章

  1. Android实战项目——音乐播放器 由四大组件之一Service、使用Ser
  2. Android窗口管理服务WindowManagerService显示窗口动画的原理分
  3. (4.2.2.3)【android开源工具】【Android(安卓)UI设计与开发】第18
  4. Android(安卓)应用的动画实践--View Animation篇
  5. Android实用视图动画及工具系列之八:带头部的Viewpaper,结合头部的
  6. Android属性动画,看完这篇够用了吧
  7. Android使用PowerImageView实现播放强大的ImageView动画效果
  8. 【Android(安卓)API指南】动画和图像概述
  9. Android实用视图动画及工具系列之六:通用表情栏,仿QQ微信聊天弹出

随机推荐

  1. Android(安卓)Rxjava+Retrofit网络请求框
  2. Android Lint gradle错误处理
  3. Android VNC Server
  4. Android用代码实现EditText不可编辑
  5. Android(安卓)实现ActionBar定制
  6. 解决导入Android例子时“Unable to resol
  7. android 打开预览不同类型文件
  8. Run c++ program with boost on Android
  9. Android 开发之 App Components
  10. Android 资源记录