做个记录,之前项目中用得比较少
一、Activity中代码段

 /*** 动态生成ValueAnimator* 执行后不断改变view得最小宽度*/private fun animationBigger() {//属性从300递增到500val anim = ValueAnimator.ofInt(300, 400).apply {this.duration = 2000 //执行时长this.repeatCount = 0this.repeatMode = ValueAnimator.RESTART}anim.addUpdateListener {// 获得改变后的值val currentValue = it.animatedValue as Int// 步骤4:将改变后的值赋给对象的属性值,下面会详细说明binding.btn1.minWidth = currentValue// 步骤5:刷新视图,即重新绘制,从而实现动画效果binding.btn1.requestLayout();}anim.addListener(object : Animator.AnimatorListener {override fun onAnimationStart(animation: Animator?) {}override fun onAnimationEnd(animation: Animator?) {startAnimset()}override fun onAnimationCancel(animation: Animator?) {}override fun onAnimationRepeat(animation: Animator?) {}})anim.start()//开始执行动画startAnimXml()}/*** 动态生成ObjectAnimator,AnimatorSet* 执行:沿Y轴旋转后位移300*/private fun startAnimset() {val anim = ObjectAnimator.ofFloat(binding.btn1, "translationX", 0f, 300f)val animRotate = ObjectAnimator.ofFloat(binding.btn1, "rotationY", 0f, 360f)val animatorSet = AnimatorSet()animatorSet.playSequentially(anim)animatorSet.duration = 2000//通过animatorSet的play方法获取  感兴趣的话 可以都试试 看一下效果animatorSet.play(anim).after(animRotate)/*** 系统自带BounceInterpolator,AccelerateInterpolator加速,DecelerateInterpolator减速,LinearInterpolator匀速* CycleInterpolator(0.5f)来回,OvershootInterpolator* http://inloop.github.io/interpolator/ 插值器示例*/animatorSet.interpolator = MInterpolator(0.5f)//自定义插值器
//        animatorSet.interpolator = CycleInterpolator(0.5f)
//        animatorSet.interpolator = OvershootInterpolator(2.0f)animatorSet.addListener(object : Animator.AnimatorListener {override fun onAnimationStart(animation: Animator?) {}override fun onAnimationEnd(animation: Animator?) {
//                translate()//重复执行}override fun onAnimationCancel(animation: Animator?) {}override fun onAnimationRepeat(animation: Animator?) {}})animatorSet.start()}private var startTime = 0L/*** 根据静态文件生成Animator* 执行:旋转后位移* 注意:静态文件配置得duration并不完全生效(有一定得效果)*/private fun startAnimXml() {AnimatorInflater.loadAnimator(this, R.animator.anim_first).apply {this.setTarget(binding.text)this.interpolator = LinearInterpolator()
//            this.startDelay = 5000//start后延迟5秒执行
//            this.duration = 10000;//生效this.addListener(object : Animator.AnimatorListener {override fun onAnimationStart(animation: Animator?) {startTime = System.currentTimeMillis()"开始执行".d()}override fun onAnimationEnd(animation: Animator?) {"timelong=${(System.currentTimeMillis() - startTime)}".d()}override fun onAnimationCancel(animation: Animator?) {}override fun onAnimationRepeat(animation: Animator?) {}})}.start()}

二、自定义插值器

import android.animation.TimeInterpolator
import kotlin.math.pow
import kotlin.math.sin/*** @author Liushihua* @date 2022-5-17 16:51* @desc*/
class MInterpolator(var factor: Float = 0.15f) : TimeInterpolator {// 因子数值越小振动频率越高override fun getInterpolation(input: Float): Float {return (2.0.pow(-10 * input.toDouble()) * sin((input - factor / 4) * (2 * Math.PI) / factor) + 1).toFloat()}
}

三、values中新建animator文件夹,anim_first.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"android:ordering="sequentially"><!-- sequentially按顺序执行 together同时执行 --><objectAnimatorandroid:duration="5000"android:propertyName="rotation"android:valueFrom="0"android:valueTo="360" /><objectAnimatorandroid:duration="7000"android:propertyName="translationX"android:valueFrom="0"android:valueTo="560" />
</set>

参考:
https://blog.csdn.net/weixin_45558166/article/details/110310651
https://www.jianshu.com/p/39ee86df9e5a

Android 属性动画Animator相关推荐

  1. android 属性动画实例,Android 属性动画Animator工具类代码案例

    代码分享-> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ packa ...

  2. android动画封装,Android属性动画封装,快速构建动画

    Android实现动画效果的方式主要有帧动画.补间动画.属性动画.关于安桌动画的基础知识可以查看这篇文章Android属性动画完全解析 这里我要讲的是如何快速构建出一个动画效果,如下图: 如果我们用属 ...

  3. Android属性动画 ObjectAnimator

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118709616 本文出自[赵彦军的博客] 文章目录 ObjectAnimator ...

  4. Android 系统(196)---Android 属性动画

    Android 属性动画 属性动画 总结&攻略 前言 动画的使用 是 Android 开发中常用的知识 本文将详细介绍 Android 动画中 属性动画的原理 & 使用 动画类型 关于 ...

  5. Android 属性动画Property Animation(中)

    Android 属性动画Property Animation(上)介绍了属性动画的概念以及相关的类和接口,本篇来看下具体肿么使用. ValueAnimator ValueAnimator指定整形.浮点 ...

  6. Android 属性动画(一)新手入门

    一.属性动画简介 Android 中动画有很多种,属性动画就是其中的一种.所谓的属性动画,就是在指定的时间内,通过改变对象的属性达到变化效果的动画.在 Android 中,属性动画系统是一个强健的框架 ...

  7. Android 属性动画 详解

    Android 属性动画 详解 Android动画类型: View Animation(即所谓的Tween Animation补间动画):View Animation相当简单,不过只能支持简单的缩放. ...

  8. Android属性动画完全解析(上),初识属性动画的基本用法

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系 ...

  9. Android属性动画完全解析(上),初识属性动画的基本用法(转)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系 ...

最新文章

  1. MapReduce框架Mapper和Reducer类源码分析
  2. 提交响应后无法调用sendredirect_微服务的那些事(三),微服务的远程调用方式。RPC和HTTP...
  3. 简单的PHP和MYSQL做投票系统_php mysql简单投票系统
  4. Redis - 事务操作与详解
  5. 想快速拥有个人网站?来试试这个...
  6. python求100以内的素数和(只作新手参考)
  7. [回顾]事件对象——event
  8. C++数据类型基础知识
  9. iOS 使用iPhone配置实用工具 创建桌面快捷方式
  10. 改进的各向异性湿法蚀刻工艺
  11. 16.4 weak_ptr简介、weak_ptr常用操作与尺寸问题
  12. 微信小程序正式上线,服务端请求必须HTTPS
  13. OSChina 周五乱弹 ——程序员的爱情观
  14. Unity3D--控制鼠标的显示与隐藏
  15. HTML——表格table
  16. 【5G架构】5G 接入网架构概述
  17. 『最小表示法 Necklace』
  18. KITTI数据集测试 - 3 calib 相机参数
  19. 黑龙江省佳木斯市谷歌高清卫星地图下载
  20. 用 python selenium 爬简书,Python自动化领域之 Selenium WebDriver 学习第2篇

热门文章

  1. 爬虫中requests模块(一)
  2. 天翼云主机简介和使用流程
  3. 用计算机做科学试验,用计算机做科学实验之引导层动画(2页)-原创力文档
  4. PCM格式及音频采样原理、转换
  5. 零基础小白如何自学 Unity 游戏开发?(送 Unity 教程)
  6. iphone 使用AJAX发送FormData文件,踩坑
  7. Android 安卓开发命令汇总
  8. 一摞Python风格的麻将
  9. CondaHTTPError: HTTP 404 NOT FOUND for url
  10. 泪目!字节跳动Android实习面试凉凉经,面试必备