ycq__110 发表于 2013-1-30 04:16:41

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.  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();
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  ListView与Animations结合使用
AnimationListener
a)  onAnimationEnd(Animation animation)
b)  onAnimationRepeat(Animation animation)
c)  onAnimationStart(Animation animation)
l  AnimationListener的使用方法
页: [1]
查看完整版本: Animation xml中或者代码实现