TweenAnimation 的详解

res/anim  用于动画设置 根节点为 set , xml 文件中的配置:



   TweenAnimation 补间动画 :alpha 渐变透明 scale 缩放  rotate 旋转 translate  上下左右移动

           alpha:  取值0.0 ----1.0  float  类型   持续时间单位为毫秒



<!--AlphaAnimation(float fromAlpha, …)  动画开始的透明度(0.0到1.0,0.0是全透明,1.0是不透明)
AlphaAnimation(…, float toAlpha)   动画结束的透明度,同上-->
<!--setDuration(long)  动画持续时间,毫秒为单位-->
<!--setRepeatCount(int)    重复次数-->
<!-- setRepeatMode(int)    重复类型有两个值,reverse表示倒序回放,restart表示从头播放-->
<!--setStartOffset(long)   调用start函数之后等待开始运行的时间,单位为毫秒-->
<!--setDetachWallpaper(boolean)    是否在壁纸上运行-->
<!--setFillAfter(boolean)  控件动画结束时是否保持动画最后的状态-->
<!--setFillBefore(boolean) 控件动画结束时是否还原到开始动画前的状态-->
<!--setFillEnabled(boolean)    与android:fillBefore效果相同-->
<!--setZAdjustment(int)    表示被设置动画的内容运行时在Z轴上的位置(top/bottom/normal),默认为normal-->
<!--setInterpolator(Interpolator)  设定插值器(指定的动画效果,譬如回弹等)-->

<alpha
    android:detachWallpaper="true"
    android:duration="3000"
    android:fillAfter="true"
    android:fillBefore="true"
    android:fillEnabled="true"
    android:fromAlpha="0"
    android:repeatCount="infinite"
    android:repeatMode="reverse"
    android:startOffset="3000"
    android:toAlpha="1"
    android:zAdjustment="top"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
/>

Interpolator的介绍

AccelerateDecelerateInterpolator 在动画开始与介绍的地方速率改变比较慢,在中间的时候加速
AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速
CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始减速
LinearInterpolator 在动画的以均匀的速率改变


<rotate
    android:duration="3000"
    android:fromDegrees="0"//动画开始时的角度
    android:pivotX="50%"//x轴的中点  取值为0%--100%
    android:pivotY="50%"//y轴的中点   同上

    android:toDegrees="360" //动画结束时的角度
    />
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转)


<scale
    android:duration="3000"
    android:fromXScale="0.2"//x轴开始时伸缩尺寸 float 值
    android:fromYScale="0.2"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="1.0"//x轴结束时伸缩尺寸
    android:toYScale="1.0" 
    />
0.0表示收缩到没有
1.0表示正常无伸缩
值小于1.0表示收缩
值大于1.0表示放大


<translate
    android:fromXDelta="0"//x轴开始时的坐标
    android:toXDelta="100%"//x轴的最大值
    android:fromYDelta="0"
    android:toYDelta="100%"
    android:duration="5000"
    />

如何在代码中引入xml中定义的动画


  AnimationSet  set = new AnimationSet(false);//将所有动画整合
    set.addAnimation(AnimationUtils.loadAnimation(this, R.anim.alpha));
    set.addAnimation(AnimationUtils.loadAnimation(this, R.anim.scale));
    set.addAnimation(AnimationUtils.loadAnimation(this, R.anim.rotate));
    set.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {//动画开始

        }

        @Override
        public void onAnimationEnd(Animation animation) {//动画结束
           }
        @Override
        public void onAnimationRepeat(Animation animation) {//动画重复

        }
    });
    ImageView imageView = (ImageView) findViewById(R.id.iv_welcome);
    imageView.startAnimation(set);

}







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值