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

    原理:

    逐帧动画是最简单的一种动画。原理就是把几张图片连续显示出来,以达到动画的效果。就相当于下面这种手绘翻页动画啦~

    实现:

    1、需要建立一个animation-list来设置静态图片资源、持续时间和是否循环播放。在res下建立一个anim文件夹,然后新建一个intro5.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/intro5" android:duration="400" />
        <item android:drawable="@drawable/intro51" android:duration="400" />
                                                                    
    </animation-list>
    android:drawable="@drawable/intro5"是图片资源
    android:duration="400"指的是这幅图片显示400毫秒
    android:oneshot="false"表示循环播放

    2、把动画资源intro5.xml设置到ImageView的背景图里面,以便AnimationDrawable的调用

    <ImageView
        android:id="@+id/anim"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:background="@anim/intro5"
        android:scaleType="center"
        />

    在android:background="@anim/intro5"的地方设置第一步写的动画资源。当然,如果你想连续播放多个动画的话,可以写好几个动画资源,然后在java代码里不断设置ImageView的背景。

    3、需要AnimationDrawable来控制逐帧动画的开始、结束等其他操作。

    public class MainActivity extends Activity{
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            
    
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            Button play = (Button)findViewById(R.id.play);
            Button stop = (Button)findViewById(R.id.stop);
            ImageView imageView = (ImageView)findViewById(R.id.anim);
            
            
            //获取AnimationDrawable动画对象
            final AnimationDrawable anim = (AnimationDrawable)imageView
                .getBackground();
            
            play.setOnClickListener(new OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    //开始播放动画
                    anim.start();                
                }            
            });
            
            stop.setOnClickListener(new OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    //停止播放动画
                    anim.stop();                
                }        
            });    
        
        }
    
    }

    AnimationDrawable除去开始播放动画和停止播放动画外还有一些操作,不过个人觉得几乎是用不上。

    不过还是附上官网的链接吧:http://developer.android.com/guide/topics/graphics/drawable-animation.html

  • 相关阅读:
    childNodes.length和form.length的不同
    外部样式表声明的样式并不会进入style对象
    js之insertBefore(newElement,oldElement)
    文字不换行,超出部分显示成省略号
    animation和transition做动画的区别
    html中隐藏一个元素的方法
    css常见属性和属性值
    css选择器的优先级
    frameset怎么框架内部跳转
    form表单标签及属性的介绍
  • 原文地址:https://www.cnblogs.com/glimpse/p/5254329.html
Copyright © 2011-2022 走看看