zoukankan      html  css  js  c++  java
  • 帧动画 使用详解

    极力推荐文章:欢迎收藏
    Android 干货分享

    阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android

    本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

    1. 创建帧动画播放控制的xml文件
    2. 设置播放帧动画载体
    3. 使用AnimationDrawable 开启 、关闭帧动画
    4. 实现效果及素材

    动画在Android 开发中经常会被用到,好的动画效果可以达到事半功倍的效果,本文主要是帧动画的实现。帧动画主要实现原理是类似播放电影一样,一帧帧的播放预存好的图片,当播放速度大于人眼视觉存留的速度时,就会成为动画效果。其实手机中的开机动画也是帧动画,bootanimation .zip中存放大量的图片。

    1. 创建帧动画播放控制的xml文件

    使用方法如下:
    在anim 文件夹下创建一个xml,里面放置用于播放的一帧一帧图片

    <?xml version="1.0" encoding="utf-8"?>
    <animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <item
            android:drawable="@drawable/bird0001_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0002_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0003_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0004_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0005_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0006_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0007_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0008_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0009_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0010_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0011_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0012_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0013_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0014_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0015_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0016_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0017_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0018_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0019_risk"
            android:duration="80"/>
        <item
            android:drawable="@drawable/bird0020_risk"
            android:duration="80"/>
    
    </animation-list>
    

    2.设置播放帧动画载体

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <ImageView
            android:id="@+id/img"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_gravity="center_horizontal"
            android:background="@anim/frame_animation" />
    </LinearLayout>
    

    3. 使用AnimationDrawable 开启 、关闭帧动画

    	/**
    	 * 1.帧动画使用方法
    	 * 
    	 * */
    	public void BtnFrameAnim(View view) {
    
    		// AnimationDrawable 用来创建帧动画的对象
    		final AnimationDrawable animationDrawable = (AnimationDrawable) mImageView
    				.getBackground();
    
    		if (isStartAnim) {
    			animationDrawable.stop();
    			((Button) findViewById(R.id.btn_frame_anim)).setText("开启帧动画");
    			isStartAnim = false;
    		} else {
    			// 开始帧动画
    			animationDrawable.start();
    			((Button) findViewById(R.id.btn_frame_anim)).setText("关闭帧动画");
    			isStartAnim = true;
    		}
    
    	}
    

    4.实现效果及素材

    • 实现效果

    飞翔的小鸟

    • 素材

    bird0001_risk.png
    bird0002_risk.png

    ... ...

    bird0020_risk.png

    至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

    微信关注公众号:  程序员Android,领福利

  • 相关阅读:
    CF 633 E. Binary Table
    BZOJ 4589 Hard Nim
    不走弯路,微信小程序的快速入门?
    如果通过cookies和localStorage取值?
    Airbub 弃用React Native
    如何在登陆注册的时候,实现密码框的小眼睛的显示与与隐藏?
    js 实用封装 点击按钮复制到剪贴板
    css渐变写法 从左到右渐变三种颜色示例;
    vue-router 使用二级路由去实现子组件的显示和隐藏
    vue 路由传参中刷新页面参数丢失 及传参的几种方式?
  • 原文地址:https://www.cnblogs.com/wangjie1990/p/11323682.html
Copyright © 2011-2022 走看看