柚子快报激活码778899分享:Android笔记:动画

http://www.51969.com/

文章目录

1.View Animation(视图动画)1.1 Tween Animation(补间动画)Animation 继承属性透明度alpha缩放scale移动translate旋转rotateset标签Animation父类共有函数

1.2Frame Animation (逐帧动画)

2.Property Animation(属性动画)2.1 ValueAnimator常用方法监听器自定义插值器 和 Evaluator

2.2 ObjectAnimator基本使用方法自定义ObjectAnimator

2.3 动画组合AnimatorSet

3.ViewPropertyAnimator3.1常用方法

4.例子5.ViewGroup 内的组件添加动画5.1 android:animateLayoutChanges 属性5.2 LayoutTransition

动画分为两种类型:View Animation(视图动画)和 Property Animation(属性动画),其中 View Animation 包括 Tween Animation(补间动画)和 Frame Animation (逐帧动画),Property Animation 包括 ValueAnimator 和 ObjectAnimator

1.View Animation(视图动画)

1.1 Tween Animation(补间动画)

由5中类型组成 alpha、scale、translate、rotate、set

Animation 继承属性

android:duration:完成一次动画的时间,毫秒 android:fillAfter:true,控件动画结束时,保持动画结束时的状态 android:fillBefore:true,控件动画结束时,还原到初始化状态 android:fillEnabled:与 fillBefore 相同,控件动画结束时,还原到初始化状态 android:repeatCount:动画重复的次数,为 infintie 时表示无线循环,设置为1表示重复一次,即播放两边动画 android:repeatMode:动画重复的类型,reverse倒叙回放,restart重放,必须与repeatCount 一起使用才有效果 android:interpolator:指定插值器,比如弹跳效果等

android:interpolator="@android:anim/linear_interpolator" //默认值先线性插值器

不指定插值器动画的效果都是匀速进行,即默认值为 线性(匀速)插值器

说明LinearInterpolator匀速 默认值AccelerateInterpolator加速插值器 开始速率为0,后面加速,到结束位置速度最大DecelerateInterpolator减速插值器 开始速率最大,后面减速,到结束位置速度为0AccelerateDecelerateInterpolator开始和结束速率较慢,中间快,加速插值器 和 减速插值器 的结合AnticipateInterpolator初始偏移插值器,动画开始时,向相反的方向移动一段时间,可设置便宜等级,默认为2,越大偏移越明显OvershootInterpolator结束偏移插值器,动画结束时,延续动画运行一段时间,然后在回到结束位置AnticipateOvershootInterpolator初始结束偏移插值器,初始偏移插值器 和 结束偏移插值器 的结合BounceInterpolator弹跳插值器 类似玻璃弹珠掉到地上的效果,自由落体后的回弹CycleInterpolator循环正弦插值器,进行一次正弦波运动,cycles 表示循环次数LinearOutSlowInInterpolator匀速减速插值器,先匀速在减速,类似Decelerate,过程不全是减速,有一段匀速FastOutLinearInInterpolator加速匀速插值器,先加速在匀速,AccelerateFastOutSlowInInterpolator加速减速插值器,先加速后减速,类似 AccelerateDecelerate

android:fillAfter="true"

android:duration="3000"

android:interpolator="@android:anim/linear_interpolator">

android:toXDelta="500" />

class MainActivity : AppCompatActivity() {

lateinit var btn: Button

lateinit var text_1: TextView

lateinit var text_2: TextView

lateinit var text_3: TextView

lateinit var text_4: TextView

lateinit var text_5: TextView

lateinit var text_6: TextView

lateinit var text_7: TextView

lateinit var text_8: TextView

lateinit var text_9: TextView

lateinit var text_10: TextView

lateinit var text_11: TextView

lateinit var text_12: TextView

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

btn = findViewById