android动画 -- view Animation

android动画:
分为三种:View Animation、Drawable Animation和Property Animation

View Animation只能用于View组件上,并且只能完成基本的动画效果(旋转/透明度渐变/尺寸渐变/移动),它无法做到背景颜色的改变等;并且这些动画效果也只是改变了draw时的绘制效果,并没有改变组件实际的尺寸和位置,例如Button使用这种效果时,放大,他的有效位置可点击区域仍是以前的大小,变化的效果也不会对点击事件起作用;

Drawable Animation帧动画,就是事先把准备好的图片弄好,按照一定的顺序播放图片,带到动画效果

Property Animation就是通过设置动画的实际动作属性,完成动画效果;

View Animation:
可以使用Java代码或者xml组件定义来完成;旋转/透明度/尺寸/移动依次依靠 RotateAnimation、AlphaAnimation、 ScaleAnimation和TranslateAnimation
JAVA使用方法:
//旋转

        RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) 
        //参数1: 开始角度
        //参数2: 旋转到多少角度 (后四个定义旋转的中心)
        //参数3: 值类型,三种Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT分别表示绝对/相对于自身/相对于父控件
        //参数4: 值多少  0~1范围内

        //透明度
        AlphaAnimation(float fromAlpha, float toAlpha) 
        //这个好理解,不解释;0~1取值  0 完全透明  1完全不透明

        //尺寸伸缩
        ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) 
        //参数1: X开始尺寸  < 1 表示收缩  >1表示放大  0 表示收缩到没有
        //后面几个参数好理解

        //移动
        TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, int fromYType, float fromYValue, int toYType, float toYValue) 
        //根据类型确定值  移动前的位置  移动后的位置
    1. 动画弄好后,调用image.startAnimation(animation)即可开始动画操作
    2. 如果用于图像上有多个动画,可以把多个动画加入到AnimationSet里面去addAnimation(Animation a) ;该类也是继承Animation;所有也可以image.startAnimation(animationSet)

XML代码使用方法:
        <set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">               //放到这儿才有用处
    <translate android:interpolator="@android:anim/decelerate_interpolator"
        android:fromXDelta="0%"
        android:toXDelta="100%"
        android:fromYDelta="0%"
        android:toYDelta="100%"
        android:duration="1000"
        android:fillAfter="true"/>          //保持移动后的效果图;但是放在此处不起作用  

</set>
Java里面调用:
    Animation anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.myanim);
  image.startAnimation(anim);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

帅气好男人_Jack

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

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

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

打赏作者

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

抵扣说明:

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

余额充值