Android 动画:补间动画、属性动画、帧动画

 #.动画的本质

    无论手机还是电视,都以一定频率在不停刷新屏幕画面,当前一般为60Hz。

    手机屏幕一般1s刷新了60次屏幕画面,如果这些画面连在一起呈现出了一个“动画”的效果,用户就认为看到了动画。

    无论这个效果是用什么方式来实现的,其实用户只是需要在屏幕中看到这个效果。它可以通过很多种方式来实现,例如:覆写View的onDraw()、通过SurfaceView、通过估值器不停回调更新、通过Handler不停发送延迟消息更新。

    而Android本身提供了三种机制来供开发者更便捷地实现动画,这也就是我们开发者口中经常说到的Android三种动画:补间动画、属性动画、帧动画

#.Android三类动画简介:

1.补间动画:

    通过渐进操作View的影像,实现动画。注意它仅仅实现一个动画效果,未真正改变View任何属性。

    例如View用补间动画移动后,位置并未变化,若设置了点击事件,点击原来位置有反应,点击最后动画停止位置无反应。

    能进行4种效果的变化:平移、放缩、旋转、透明度。

2.属性动画:     

    通过渐进改变View对象的属性值,实现动画。(这里的属性可以是该对象java类中任意已实现set/get方法的属性)

    会真实改变属性值,但要注意位置变化时View的getLeft()/getRight()/getTop()/getBottom()等四个边界的原始偏移坐标不会变化,改变的是View左上角当前的坐标值getX()/getY()。

3.帧动画:

    设置了一组图片,通过快速切换这些图片的显示,实现动画效果

#.三种动画示例及属性说明

1.补间动画

在src/anim下定义anim_set.xml

​
<?xml version="1.0" encoding="utf-8"?>
<!--  可以定义一个个单独的动画,也可以将这些动画组合起来定义在一个xml中  -->
<!--  组合的方式更常见一些  -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--透明度变化-->
    <alpha
        android:duration="1000"
        android:fromAlpha="0"
        android:toAlpha="1"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        />
    <!--平移-->
    <translate
        android:duration
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值