android动画

来源:互联网 发布:办公协同软件 编辑:程序博客网 时间:2024/06/06 16:33
Android 平台提供了两类动画
一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
============================================================================
AlphaAnimation        Animation alphaAnimation = new AlphaAnimation(0.1f, 1.0f);    渐变动画

其中AlphaAnimation类第一个参数fromAlpha表示动画起始时的透明度, 第二个参数toAlpha表示动画结束时的透明度。 

RotateAnimation        Animation rotateAnimation = new RotateAnimation(0f, 360f);        旋转动画

其中RotateAnimation类第一个参数fromDegrees表示动画起始时的角度, 第二个参数toDegrees表示动画结束时的角度。 

另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y 坐标的开始位置pivotXValue、pivotYValue等。

ScaleAnimation        Animation scaleAnimation = new ScaleAnimation(0.1f, 1.0f,0.1f,1.0f);        尺寸变化动画

ScaleAnimation类第一个参数fromX ,第二个参数toX:分别是动画起始、结束时X坐标上的伸缩尺寸。

第三个参数fromY ,第四个参数toY:分别是动画起始、结束时Y坐标上的伸缩尺寸。

另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y 坐标的开始位置pivotXValue、pivotYValue等。

TranslateAnimation        Animation translateAnimation = new TranslateAnimation(0.1f, 100.0f,0.1f,100.0f);      平移动画

TranslateAnimation类第一个参数fromXDelta ,第二个参数toXDelta:分别是动画起始、结束时X坐标。

第三个参数fromYDelta ,第四个参数toYDelta:分别是动画起始、结束时Y坐标。

============================================================================

AnimationSet 动画集

AnimationSet set = new AnimationSet(true);

set.addAnimation(alphaAnimation);    //把单种动画加入动画集中

anim1.setDuration(1000);         //动画持续时间

anim1.setStartOffset(800);        //设置动画启动延时时间

anim1.setFillAfter(true);        //动画结束后,保留在终止位 

mLeft.startAnimation(anim);    //左边图启动该动画效果  

  

mLeft = (ImageView)findViewById(R.id.imageLeft);


============================================================================

Frame动画:

<?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/p01" android:duration="100" />
    <item android:drawable="@drawable/p02" android:duration="100" />
    <item android:drawable="@drawable/p03" android:duration="100" />  
</animation-list>


ImageView anim = (ImageView) findViewById(R.id.anim);
AnimationDrawable animdamce = (AnimationDrawable) anim.getBackground();


 public void onWindowFocusChanged(boolean hasFocus) {//因为AnimationDrawable类尚未完全与window接触,不能在onCreate中执行,
                                                   //如果希望一开始就播放动画,就要加入一个onWindowFocusChanged()方法来启动。
          // TODO Auto-generated method stub
          super.onWindowFocusChanged(hasFocus);
          animdamce.start();
     }

0 0
原创粉丝点击