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

      原本的想法是给自己的app在启动时显示一个动画欢迎界面,然后跳转到开始的activity。起初的想法是使用gif格式的图片,但是android不支持gif动画。

    后来发现android有其他方法可以实现。就是所谓的帧动画。不多说,看例子。

      

    package com.tangchd.nanjing.musicplayer.acivities;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.drawable.AnimationDrawable;
    import android.graphics.drawable.Drawable;
    import android.os.Bundle;
    import android.os.Handler;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    
    public class HelloActivity extends Activity {
    
        // 帧动画
        private AnimationDrawable frameAnimation = null;
        private Drawable mBitAnimation = null;
    
        @SuppressWarnings("deprecation")
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // 全屏
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.activity_hello);
    
            
            frameAnimation = new AnimationDrawable();
            for (int i = 1; i <= 6; i++) {
                int id = getResources().getIdentifier("hello" + i, "drawable",
                        this.getPackageName());
                mBitAnimation = getResources().getDrawable(id);
                // 参数mBitAnimation是该帧的图片,参数300是下一帧显示的时间间隔,按毫秒计算
                frameAnimation.addFrame(mBitAnimation, 300);
            }
            
            // 是否不重复动画。true不重复显示,停留在最后一帧。false重复显示
            frameAnimation.setOneShot(true);
            
            // getDecorView获得window最顶层的View
            View view = this.getWindow().getDecorView(); 
            view.setBackgroundDrawable(frameAnimation);
            // 开始动画
            frameAnimation.start();
    
            // 延迟跳入下一个activity
            new Handler().postDelayed(new Runnable() {
    
                @Override
                public void run() {
                    Intent mainIntent = new Intent(HelloActivity.this,
                            PlayActivity.class);
                    startActivity(mainIntent);
                    finish();
                }
            }, 6000);    
        }
    }
  • 相关阅读:
    【转】基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测,目标追踪,卷积神经网络
    YOLOv1_paper
    程序的编译链接过程【转】
    tensorflow-MTCNN【转】
    FaceNet实现人脸检测和识别
    ORACLE常用SQL优化hint语句
    SQL Cursor生命周期
    Hive SQL的编译过程
    深入浅出数据仓库中SQL性能优化之Hive篇
    Hive基础
  • 原文地址:https://www.cnblogs.com/tangchd/p/3455575.html
Copyright © 2011-2022 走看看