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>
    
  • 相关阅读:
    js自定义回调函数
    python:sql建表语句转换为json
    简单list转化为tree结构
    JSP中页面定时刷新
    struts2中<s:select/>标签的运用详解
    Redis 的 Sentinel
    redis持久化(persistence)
    java验证身份证合理性
    js 里面的键盘事件对应的键码
    Struts2中使用OGNL表达式语言访问静态方法和静态属性
  • 原文地址:https://www.cnblogs.com/loaderman/p/6421547.html
Copyright © 2011-2022 走看看