android之动画分析

android之Tween动画分析

Android动画有两种:
1,Tween动画,通过对 View 的内容进行一系列的图形变换 (包括平移、缩放、旋转、改变透明度)来实现动画效果。动画效果的定义可以采用XML来做也可以采用编码来做;
2,Frame动画,即顺序播放事先做好的图像,跟放胶片电影类似。 
(1)把准备好的图片放进项目res/ drawable下。
(2)在项目的res目录下创建文件夹anim,然后在anim文件夹下面定义动画XML文件,文件名称可以自定义。当然也可以采用编码方式定义动画效果(使用AnimationDrawable类)。
(3)为View控件绑定动画效果。调用代表动画的AnimationDrawable的start()方法开始动画。

定义动画简单2步骤:
1,res文件下建动画文件anim,然后建动画xml,比如scale.xml;
2,代码直接调用xml布局文件,形成动画;

今天讲下Tween的4种动画用法:
1,渐变尺寸缩放效果动画,如果用代码定义动画需要使用的类:ScaleAnimation
布局代码:
<span style="font-size:14px;"><!-- 缩放动画 -->
    <scale
        android:duration="1000"
        android:fillAfter="false"
        android:fromXScale="0.0"
        android:fromYScale="0.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0" /></span>
说明:
duration: 动画时长
fromXScale: 动画起始X坐标 
fromYScale: 动画起始Y坐标
toXScale:动画结束X坐标
toYScale:动画结束Y坐标
    0.0表示收缩到没有,1.0表示正常无收缩
    值小于0表示收缩,大于1.0表示放大
pivotX: 动画相对于物件的X坐标的开始位置
pivotY: 动画相对于物件的X坐标的开始位置  这两个坐标可以理解成是一个中心点,动画的中心点
从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置 
fillAfter(布尔型)属性当设置为true,该动画转化在动画结束后被应用

代码调用布局动画:
<span style="font-size:14px;">// scale缩放动画
		ImageView mImageView = (ImageView) findViewById(R.id.imageView);
		// 加载动画
		Animation mAnimation = AnimationUtils.loadAnimation(this, R.anim.scale);
		// 执行动画
		mImageView.startAnimation(mAnimation);</span>


2,渐变透明度动画,如果用代码定义动画需要使用的类:AlphaAnimation
布局代码:
<span style="font-size:14px;">   <!-- 透明动画 -->
    <alpha
        android:duration="1000"
        android:fromAlpha="1.0"
        android:toAlpha="0.6" /></span>
说明:
duration: 动画时长
fromAlpha: 动画起始透明度 
toAlpha: 动画结束透明度
1.0表示无透明,0.0完全透明

代码调用如上一样,在此省略...


3,画面移动动画,如果用代码定义动画需要使用的类:TranslateAnimation
布局代码:
<span style="font-size:14px;">  <!-- 移动动画 -->
    <translate
        android:duration="1000"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:repeatCount="1"
        android:toXDelta="120"
        android:toYDelta="120" /></span>
说明:
duration: 动画时长
fromXDelta:动画起始X坐标
fromYDelta:  动画起始Y坐标
toXDelta:  动画结束X坐标
toYDelta:  动画结束Y坐标
repeatCount: 动画重复次数 

代码调用如上一样,在此省略...


4,画面移动动画,如果用代码定义动画需要使用的类:
RotateAnimation
布局代码
     <rotate
        android:duration="1000"
        android:fromDegrees="0"
         android:toDegrees="360" 
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="1"
       />

 
    说明:
duration: 动画时长
fromDegress: 动画起始角度
toDegress: 动画结束角度
(负数fromDegrees——toDegrees正数:顺时针旋转)
(负数fromDegrees——toDegrees负数:逆时针旋转)
(正数fromDegrees——toDegrees正数:顺时针旋转)
(正数fromDegrees——toDegrees负数:逆时针旋转)  

pivotX:  动画相对于物件的X坐标
pivotY:  动画相对于物件的Y坐标
以上两个属性值 从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置
repeatCount: 动画重复次数


代码调用如上一样,在此省略...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值