zoukankan      html  css  js  c++  java
  • 帧动画

    原理:播放频率大于20帧/s,多张图片就可以形成流畅的画面。

    即顺序播放事先做好的图像,跟放胶片电影类似。开发步骤:

      (1)把准备好的图片放进项目res/ drawable下。

      (2)在项目的res目录下创建文件夹anim,然后在anim文件夹下面定义动 画XML文件,文件名称可以自定义。当然也可以采用编码方式定义 动画效果(使用AnimationDrawable类)。

      (3)为View控件绑定动画效果。调用代表动画的AnimationDrawable的 start()方法开始动画。


    Drawable动画说明

    可以使用xml或者java方式实现帧动画。但推荐使用xml,具体如下:

    <animation-list> 必须是根节点,包含一个或者多个<item>元素,属性有:

    • android:oneshot true代表只执行一次,false循环执行。
    • <item> 类似一帧的动画资源。

    <item> animation-list的子项,包含属性如下:

    • android:drawable 一个frame的Drawable资源。
    • android:duration 一个frame显示多长时间。

    import android.app.Activity;
    import android.graphics.drawable.AnimationDrawable;
    import android.os.Bundle;
    import android.widget.ImageView;
    public class MainActivity extends Activity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);
      
           ImageView rocketImage = (ImageView) findViewById(R.id.iv);
           //给imageview设置背景
           rocketImage.setBackgroundResource(R.drawable.anim);
           //获取imageview的背景资源图片
           AnimationDrawable rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
           rocketAnimation.start();
     }
    }
    

     drawable下新建anim.xml

    <?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/girl_1" android:duration="200" />     <!-- duration代表 持续时间-->   
    
        <item android:drawable="@drawable/girl_2" android:duration="200" />
        <item android:drawable="@drawable/girl_3" android:duration="200" />
        <item android:drawable="@drawable/girl_4" android:duration="200" />
        <item android:drawable="@drawable/girl_5" android:duration="200" />
        <item android:drawable="@drawable/girl_6" android:duration="200" />
        <item android:drawable="@drawable/girl_7" android:duration="200" />
        <item android:drawable="@drawable/girl_8" android:duration="200" />
        <item android:drawable="@drawable/girl_7" android:duration="200" />
        <item android:drawable="@drawable/girl_8" android:duration="200" />
        <item android:drawable="@drawable/girl_7" android:duration="200" />
        <item android:drawable="@drawable/girl_8" android:duration="200" />
        <item android:drawable="@drawable/girl_9" android:duration="200" />
        <item android:drawable="@drawable/girl_10" android:duration="200" />
        <item android:drawable="@drawable/girl_11" android:duration="200" />
    </animation-list>
    
    注在此目录下需要放入上面命名为girl_1到girl_11的图片  ,不易过大,容易发生OOM
    
    <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/iv"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
    
  • 相关阅读:
    【转】XP下安装IIS6.0的办法
    设计模式学习笔记十:单例模式(Singleton Pattern)
    linq学习笔记(2):DataContext
    设计模式学习笔记十二:桥接模式(Bridge Pattern)
    英文版c#数据结构
    linq学习笔记(3):Where
    一步步学习WCF(1):Hello
    linq学习笔记(5):Count/Sum/Min/Max/Avg
    [转]Asp.Net 面试题目收集
    从谷歌公司发现的十个至理名言
  • 原文地址:https://www.cnblogs.com/loaderman/p/6421547.html
Copyright © 2011-2022 走看看