Animation xml中或许代码实现

Animation xml中或者代码实现

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.  AnimationSetAnimation的子类

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();

l  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);

l  ListViewAnimations结合使用

AnimationListener

a)  onAnimationEnd(Animation animation)

b)  onAnimationRepeat(Animation animation)

c)  onAnimationStart(Animation animation)

l  AnimationListener的使用方法