android 动画

来源:互联网 发布:小猪微信分销系统源码 编辑:程序博客网 时间:2024/06/05 10:11

一.帧动画

<1>.动画xml文件

<?xmlversion="1.0"encoding="utf-8"?>

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

    android:oneshot="false">

    <itemandroid:drawable="@drawable/img0"android:duration="50"/>

<item android:drawable="@drawable/img1" android:duration="50"/>

<item android:drawable="@drawable/img2" android:duration="50"/>

    </animation-list>

<2>.给控件绑定动画

<ImageView

        android:id="@+id/iv"

        android:background="@anim/myanimation"

        android:layout_width="200dp"

        android:layout_height="200dp"/>

<3>.获取并使用动画

ImageView iv = (ImageView) findViewById(R.id.iv);

AnimationDrawable drawable =(AnimationDrawable) iv.getBackground();     

drawable.start();

drawable.stop();


二.补间动画

<1>.移动动画

  (1)控件

<ImageView
        android:id="@+id/iv" android:layout_width="50dp"       
        android:layout_height="50dp"  android:src="@drawable/apple"/>
 

  (2)动画文件

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromYDelta="0%p"
    android:toYDelta="100%p"
    android:duration="1000">
</translate>

  (3)绑定动画并使用

ImageView iv = (ImageView) findViewById(R.id.iv);

TranslateAnimation animation = (TranslateAnimation) AnimationUtils.loadAnimation(this,R.anim.trans_anim);

iv.startAnimation(animation);

(4)说明

fromYDelta=“+50%”,正负代表方向,50%代表相对自己原始位置移动自己高度的0.5倍,100%代表1倍,200%代表2倍;也可不加%符号

fromYDelta=“+50%p”,p代表相对自己原始位置移动父控件高度的0.5倍,100%代表1倍,200%代表2倍

fillBefore是指动画结束时画面停留在此动画的第一帧;

fillAfter是指动画结束是画面停留在此动画的最后一帧。

<2>旋转动画

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:fromDegrees="180"
    android:toDegrees="300">

</rotate>

fromDegrees:旋转开始角度
toDegrees:旋转结束角度

<3>渐变动画

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="0.0"
    android:toAlpha="0.3"
    android:duration="2000">
</alpha>
fromAlpha:渐变开始透明度
toAlpha:渐变结束透明度
0.0是完全透明,1.0完全不透明

<4>缩放动画

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:pivotX="100%"
    android:pivotY="100%"
    android:fromXScale="0.0"
    android:toXScale="1.4"
    android:fromYScale="0.0"
    android:toYScale="1.4">
</scale>
fromXScale:0.0代表缩放最小,1.0不缩放,大于1.0代表放大,小于1.0代表缩小
pivotX:相对于自己原始的位置,取宽度的百分之几作为重心来进行缩放

0 0
原创粉丝点击