Android动画深入分析-知识点大全

本文深入剖析Android动画,包括View动画和属性动画的定义、使用、原理,涵盖帧动画、布局动画、Activity及Fragment切换动画等。同时讨论了属性动画的插值器和估值器,以及如何对任意属性做动画的技巧。
摘要由CSDN通过智能技术生成

转载请注明链接: http://blog.csdn.net/feather_wch/article/details/79153727

  1. 以面试提问形式总结Android动画所有知识点。适合学习或者复习。
  2. 主要包括:View动画的定义和使用,属性动画的定义和使用以及插值器、估值器的作用,以及属性动画的原理
  3. 代码部分用Kotlin/java方式实现。

Android动画深入分析(37题)

版本: 2018/2/11-1


部分知识点参考自:http://blog.csdn.net/feather_wch/article/details/78625945#6-animationset

1、Android动画分为三种:

  1. View动画(Animation)
  2. 帧动画(属于View动画,但有区别)
  3. 属性动画

View动画

2、 View动画的分类

分类 XML标签 效果
TranslateAnimation translate 移动View
ScaleAnimation scale 放大或缩小View
RotateAnimation rotate 旋转View
AlphaAnimation alpha 改变透明度

3、 View动画的使用

  1. 可以采用XML定义动画
  2. 也可以通过代码动态创建
  3. 建议使用XML方法创建,使得动画的可读性更好
  4. XML形式的View动画,需要在res/anim/目录下创建XML文件custom.xml

4、 View动画通过XML定义的源码和各属性要点

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="true"
    android:duration="2000" //持续时间
    android:fillAfter="true"> //动画后是否停留在结束位置
    <alpha
        android:fillAfter="true"
        android:dutaion="1000"  //动画持续时间
        android:fromAlpha="0.1" //初始透明度,1为不透明,0为完全透明
        android:toAlpha="1"/>

    <scale
        android:fromXScale="0.5" //水平方向缩放,从0.5放大至1.2
        android:toXScale="1.2"
        android:fromYScale="1.1" //垂直方向缩放,从1.1缩小至0.3
        android:toYScale="0.3"
        android:pivotX="0.5"     //轴点(X,Y)
        android:pivotY="0.6"/>

    <translate
        android:fromXDelta="10" //x的初始值
        android:toXDelta="120"  //x的结束值
        android:fromYDelta="0"
        android:toYDelta="100"/>

    <rotate
        android:dutaion="1000"
        android:fromDegrees="0" //旋转开始的角度
        android:toDegrees="180" //旋转结束的角度
        android:pivotY="0"   //根据轴点进行旋转
        android:pivotX="0"/>

</set>
  1. android:duration表示持续时间,set有duration属性,内部动画的duration全部以set的为准
  2. set标签没有duration时,内部的各种动画标签均以自身的duration为准
  3. android:fillAfter动画结束后,是否留在结束位置
  4. scale中的(pivotX,pivotY)是以该点坐标为中心进行缩放。无论坐标超过View本身的范围。
  5. rotate中的(pivotX,pivotY)是旋转的中心坐标,以此点进行旋转。

5、如何应用XML定义的动画

val imageview = findViewById<ImageView>(R.id.imaview)
val animation = AnimationUtils.loadAnimation(this, R.anim.custom_anima
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值