补间动画

动画概要

分类

  1. 传统动画:逐帧动画,补间动画
  2. 3.0以后:属性动画

两者区别

  1. 前者的使用对象仅限于View,每个view都支持添加动画
  2. 前者只改变了View显示的位置,并不是真正的移动了(移动后点击事件还在原来的位置触发)
  3. 属性动画可以支持任何对象
  4. 静态资源芳的目录不同:前者anim,后者 animtion

动画和目标对象的绑定

补间动画

        View view = new TextView(this);
        view.setAnimation(animtion);
        animtion.start();

属性动画

ObjectAnimator.ofFloat(**目标对象**,目标对象的属性,属性值的变化区间)

静态资源配置动画

文件位置 res/anim

<?xml version="1.0" encoding="utf-8"?>  
<set xmlns:android="http://schemas.android.com/apk/res/android"  
android:interpolator="@[package:]anim/interpolator_resource"  
android:shareInterpolator=["true" | "false"] >  
<alpha  
android:fromAlpha="float"  
android:toAlpha="float" />  
<scale  
android:fromXScale="float"  
android:toXScale="float"  
android:fromYScale="float"  
android:toYScale="float"  
android:pivotX="float"  
android:pivotY="float" />  
<translate  
android:fromXDelta="float"  
android:toXDelta="float"  
android:fromYDelta="float"  
android:toYDelta="float" />  
<rotate  
android:fromDegrees="float"  
android:toDegrees="float"  
android:pivotX="float"  
android:pivotY="float" />  
<set>  
...  
</set>  
</set>

文件调用方法

通过 AnimationUtils.loadAnimationg创建将xml转成动画对象
通过view的setAnimation方法和控件绑定

ImageView image = (ImageView) findViewById(R.id.image);  
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump); 
image.startAnimation(hyperspaceJump);

alpha 渐变动画

属性名称值类型取值区间
fromAlpha(开始透明度)float0.0f-1.0f
toAlpha(结束时透明度)float0.0f-1.0f

构造函数

public AlphaAnimation(float fromAlpha, float toAlpha) { }

scale 缩放动画

属性名称值类型取值区间说明
pivotX(缩放中心X坐标)float0.0f-1.0f50%(中心)
pivotY(缩放中心Y坐标)float0.0f-1.0f50%(中心)
fromXScale(X方向开始缩放比例)float0.0f-1.0f
fromYScale(X方向开始缩放比例)float0.0f-1.0f
toXScale(X方向结束时缩放比例)float0.0f-1.0f
fromYScale(Y方向结束缩放比例)flaot0.0f-1.0f

构造函数

public ScaleAnimation(float fromX, float toX, float fromY, float toY,
            int pivotXType, float pivotXValue, int pivotYType, float            pivotYValue) {
    }

translate 平移动画

属性名称值类型区间说明
fromXDelta(起点X坐标)float任意坐标点0.0% 从自己所在位置开始
toXDelta(结束点X坐标)float任意100.0%(移动自身一倍)
fromYDelta
toYDelta

构造函数

public TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta) {
    }
public TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue,
            int fromYType, float fromYValue, int toYType, float toYValue) {
    }

rotate旋转动画

属性名称值类型区间说明
fromDegrees(开始的角度)float角度0.0
toDegrees(结束角度)float角度值360.0一圈
pivotX(中点X坐标)float0.0f-1.0f50%
pivotY (中点Y坐标)float0.0f-1.0f50%

构造函数

public RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue,
            int pivotYType, float pivotYValue) {
    }

插值器

LinearInterpolator:匀速
AccelerateInterpolator:加速
AccelerateDecelerateInterpolator:先加速再减速
DecelerateInterpolator:减速
BounceInterpolator:阻尼下落,即反弹数次后停止 

添加插值器

属性名称
Interpolator 制定插值器以上可选(可自定义)
shareInterpolator 共享插值器boolean

属性动画

两种属性动画和目标对象的绑定方式
ValueAnimator(值 过度)目标对象是数值(自定义View中会用到)
ObjectAnmatorofObject(目标对象,“属性”,…值)

详解

这里的太详细了我就直接搬过来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值