首頁  >  文章  >  web前端  >  android三类Animation详解_html/css_WEB-ITnose

android三类Animation详解_html/css_WEB-ITnose

WBOY
WBOY原創
2016-06-24 11:31:11927瀏覽

我们搞android的都知道android的三类Animation,分别是Tween Animation ,Frame Animation和属性动画。

1.frame animation非常的简单,说白了就是由一张一张的图片组合而成,首先在drawable文件夹下创建一个类似下面的文件:

<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ee_1" android:duration="10" /> <item android:drawable="@drawable/ee_2" android:duration="10" /> <item android:drawable="@drawable/ee_3" android:duration="10" /> <item android:drawable="@drawable/ee_6" android:duration="10" /> <item android:drawable="@drawable/ee_7" android:duration="10" /></animation-list>

然后在java文件中:

AnimationDrawable animationDrawable = (AnimationDrawable) getDrawable(R.drawable.frame_animation);frameAnimation = (TextView) findViewById(R.id.fram_animation);frameAnimation.setBackground(animationDrawable);animationDrawable.start();

就OK了

2.tween animation有四种形式,分别是alpha scale translate rotate ,相信大家都知道什么意思。使用tween animation有两种方式,一种是使用XML实现,一种是纯代码实现,在开发中我们也没有必要两种方式都非常熟悉,只要有一种比较熟就可以了,我个人爱好比较喜欢使用XML。首先创建一个anim文件夹,然后创建一个类似下面的文件:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:fillAfter="true"//保持变化后的状态    >    <rotate android:pivotY="50%"        android:pivotX="50%"        android:fromDegrees="0"        android:toDegrees="360"        android:duration="1000"        android:startOffset="0"//每一次的间隔时间        android:repeatCount="3"//重复次数        />    <scale android:pivotY="0"        android:pivotX="0"        android:fromXScale="1"        android:toXScale="0.5"        android:fromYScale="1"        android:toYScale="0.5"        android:duration="1000"        />    <translate android:duration="5000"        android:fromXDelta="0"//相对位置        android:fromYDelta="0"//相对位置        android:toXDelta="700"//相对位置        android:toYDelta="0"//相对位置        /></set>

上述代码需要注意的地方一标注

然后在java文件中调用:

Animation animation = AnimationUtils.loadAnimation(this,R.anim.tween_animation);animation.setAnimationListener(new Animation.AnimationListener() {    @Override    public void onAnimationStart(Animation animation) {    }    @Override    public void onAnimationEnd(Animation animation) {        Toast.makeText(getApplicationContext(),"完成",Toast.LENGTH_LONG).show();    }    @Override    public void onAnimationRepeat(Animation animation) {    }});view.startAnimation(animation);

是不是特别简单。

关于属性动画将在下篇博客中介绍到

来自: http://my.oschina.net/gef/blog/553040

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn