六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 87|回复: 0

Animation xml中或者代码实现

[复制链接]

升级  88%

10

主题

10

主题

10

主题

童生

Rank: 1

积分
44
 楼主| 发表于 2013-1-30 04:16:41 | 显示全部楼层 |阅读模式
Animations的使用-代码中实现

a)  Animations提供了旋转、缩放、淡入等一系列动画效果
b)  分类Tweened Animations 旋转、缩放、淡入、移动
1.1    Alpha:淡入淡出
1.2    Scale:缩放
1.3    Rotate:旋转
RotateAnimation animation=new RotateAnimation(0,360,Animation.RELATIVE_TO_PARENT,1f,Animation.RELATIVE_TO_PARENT,0f);
1.4    Translate:移动
c)      
public void onClick(View view){

        //创建一个AnimationSet对象

        AnimationSet animationSet=new AnimationSet(true);

        //创建一个AlphaAnimiation对象

        AlphaAnimation alphaAnimation=new AlphaAnimation(1, 0);

        //执行时间

        alphaAnimation.setDuration(1000);

        animationSet.addAnimation(alphaAnimation);

          //然后对图片对象imageView调用startAnimation(animationSet);   
 
       setFillAfter(true)表示动画执行完停留所在的状态
       setStartOffSet 等待多久
       setRepeatCount重复执行次数
 
Animations的使用-xml中实现

1)  在res文件夹下面新建anim文件夹,创建xml文件,加入set标签
<?xml version="1.0" encoding="UTF-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"

    android:interpolator="@android:anim/accelerate_interpolator">

    <alpha android:fromAlpha="1.0"

        android:toAlpha="0.0"

        android:startOffset="500"

        android:duration="500"

    ></alpha>

</set>
2)  onclickListener内容如下
Animation animation=AnimationUtils.loadAnimation(MobActivity.this,R.anim.alpha);

  imageView.startAnimation(animation);
 
1.  AnimationSet是Animation的子类
2.  Interpolator
Interpolator定义了动画变化的速率
AccelerateDecelerateInterpolator:在开始和结束比较慢
CvcleInterpolator:动画循环播放特定的次数,速率改变沿着正玹曲线
LinearInterpolator:均匀变化
3.  Frame-by-Frame Animations 按照指定时间间隔一个一个的显示
a)  先产生一个drawable-ldpi/anim_nv.xml
<?xml version="1.0" encoding="UTF-8"?>

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"

    android:oneshot="false">

    <item android:drawable="@drawable/nv1" android:duration="500"/>

    <item android:drawable="@drawable/nv2" android:duration="500"/>

    <item android:drawable="@drawable/nv3" android:duration="500"/>

    <item android:drawable="@drawable/nv4" android:duration="500"/>

</animation-list>
 
b)  onclick动作绑定
imageView.setBackgroundResource(R.drawable.anim_nv);
AnimationDrawable animationDrawable=(AnimationDrawable)imageView.getBackground();
animationDrawable.start();
LayoutAnimationController的使用方法
为一个layout里面的控件,或者是ViewGroup里面的控件设置动画效果。效果相同,且可以设置为在不同的时间显示。在代码或xml配置
a)  第一种xml配置
res/anim/list_anim_layout.xml
<?xml version="1.0" encoding="UTF-8"?>

<!--为一个layout里面的控件,或者是ViewGroup里面的控件设置动画效果。

效果相同,且可以设置为在不同的时间显示。可以在代码或xml配置

delay单位秒,一个动画效果结束后另一个产生的时间 。最后指定动画效果的配置文件-->

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"

  android:delay="0.5"

  android:animationOrder="normal"

  android:animation="@anim/alpha"/>
在Activity listView中加入
<ListView...

        android:layoutAnimation="@anim/list_anim_layout"

         >
 
b)  第二种代码配置
Animation animation=(Animation)AnimationUtils.loadAnimation(this, R.anim.alpha);

       LayoutAnimationController lac=new LayoutAnimationController(animation);

       lac.setOrder(LayoutAnimationController.ORDER_NORMAL);

    listView.setLayoutAnimation(lac);
ListView与Animations结合使用
AnimationListener
a)  onAnimationEnd(Animation animation)
b)  onAnimationRepeat(Animation animation)
c)  onAnimationStart(Animation animation)
AnimationListener的使用方法
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表