android -- 动画

2017-10-07  本文已影响15人  喜欢书的女孩

[1] Android 的动画

[2] 帧动画的demo

创建逐帧动画的最简单的方法是将XML文件中的动画定义在res / drawable / folder中,并将其设置为View对象的背景。然后,调用start()运行动画。
XML中定义的AnimationDrawable由单个 <animation-list>元素和一系列嵌套 <item>标记组成。每个项目定义一个动画框架。

[3] 准备一组图片,animation-list

<?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/im_lo_8"
        android:duration="150">
    </item>
    <item
        android:drawable="@drawable/im_lo_7"
        android:duration="150">
    </item>
    <item
        android:drawable="@drawable/im_lo_6"
        android:duration="150">
    </item>
    <item
        android:drawable="@drawable/im_lo_5"
        android:duration="150">
    </item>
    <item
        android:drawable="@drawable/im_lo_4"
        android:duration="150">
    </item>
    <item
        android:drawable="@drawable/im_lo_3"
        android:duration="150">
    </item>
    <item
        android:drawable="@drawable/im_lo_2"
        android:duration="150">
    </item>
    <item
        android:drawable="@drawable/im_lo_1"
        android:duration="150">
    </item>
    <item
        android:drawable="@drawable/im_lo_0"
        android:duration="150">
    </item>

</animation-list>

[4] 在 XML中,添加 ImageView

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_animation"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    tools:context="com.example.sweetgirl.customizeview.animation.AnimationActivity">

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="187dp"
        android:id="@+id/iv_animation"
        android:src="@drawable/im_lo_8"
        android:contentDescription="" />
</RelativeLayout>

[5] 在 Activity 中

import android.graphics.drawable.AnimationDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;

import com.example.sweetgirl.customizeview.R;

public class AnimationActivity extends AppCompatActivity {

    private ImageView imgPic;

    private AnimationDrawable animationDrawable;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_animation);

        imgPic = (ImageView) findViewById(R.id.iv_animation);

        imgPic.setImageResource(R.drawable.animation_lo_list);
        //给动画资源赋值
        animationDrawable = (AnimationDrawable) imgPic.getDrawable();

        animationDrawable.start();//开始

    }
}

[6]效果图(从9变到1)

2017-10-07
上一篇 下一篇

猜你喜欢

热点阅读