帧动画

来源:互联网 发布:linux 云硬盘 挂载 编辑:程序博客网 时间:2024/06/03 12:50

实现一个等待加载动画

步骤:

1、res下创建一个anim目录 新建动画xml文件

2、将需要播放动画的控件src设置为添加的动画文件

3、AnimationDrawable 获取动画资源、加载到需要播放动画的控件上

4、控制动画的播放和停止


代码如下:

1、res下创建一个anim目录 新建动画xml文件

<?xml version="1.0" encoding="utf-8"?><!--    根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画    根标签下,通过item标签对动画中的每一个图片进行声明    android:duration 表示展示所用的该图片的时间长度 --><animation-list xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="false">    <item android:drawable="@drawable/loading_01" android:duration="200"/>    <item android:drawable="@drawable/loading_02" android:duration="200"/>    <item android:drawable="@drawable/loading_03" android:duration="200"/>    <item android:drawable="@drawable/loading_04" android:duration="200"/>    <item android:drawable="@drawable/loading_05" android:duration="200"/>    <item android:drawable="@drawable/loading_06" android:duration="200"/>    <item android:drawable="@drawable/loading_07" android:duration="200"/>    <item android:drawable="@drawable/loading_08" android:duration="200"/>    <item android:drawable="@drawable/loading_09" android:duration="200"/>    <item android:drawable="@drawable/loading_10" android:duration="200"/>    <item android:drawable="@drawable/loading_11" android:duration="200"/>    <item android:drawable="@drawable/loading_12" android:duration="200"/></animation-list>
2、将需要播放动画的控件src设置为添加的动画文件

<?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_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.leixiansheng.myprogressbar.MainActivity">    <ImageView        android:id="@+id/image_view"        android:layout_centerInParent="true"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/image_pgbar" /></RelativeLayout>
3、4、AnimationDrawable 获取动画资源、加载到需要播放动画的控件上

package com.leixiansheng.myprogressbar;import android.graphics.drawable.AnimationDrawable;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;/** * 自定义progressbar ,animationDrawable动画代替 * postDelayed :view自带handler, postDelayed 延时发送到主线程handler处理 */public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final ImageView imageView = (ImageView) findViewById(R.id.image_view);//        imageView.setImageResource(R.drawable.image_pgbar); //java 实现动画资源添加(也可以直接在xml中设置src添加资源)        final AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getDrawable();        /**         * 开始动画         */        imageView.postDelayed(new Runnable() {            @Override            public void run() {                animationDrawable.start();            }        }, 100);        /**         * 取消动画,         */        imageView.postDelayed(new Runnable() {            @Override            public void run() {                animationDrawable.stop();                imageView.setVisibility(View.GONE);            }        }, 5000);    }}



原创粉丝点击