android app 闪屏

Posted GameSprite

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android app 闪屏相关的知识,希望对你有一定的参考价值。

main activity

package com.splash.screen;

import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.widget.ImageView;

import com.newbravo.sg.Game;
import com.newbravo.sg.R;

/**
 * Created by lyhd on 2016/8/2.
 */
public class LogoSplashActivity extends Activity {

    private  LogoSplashActivity mySplashActivity;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("LogoSplashActivity","onCreate");
        mySplashActivity = this;
        // 取消标题
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        // 取消状态栏
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.logo_splash);

        Log.d("cgz_android: ",this.getExternalFilesDir(null).toString());

        //第一种闪屏方式
        // 闪屏的核心代码
//        new Handler().postDelayed(new Runnable() {
//            @Override
//            public void run() {
//                Intent intent = new Intent(LogoSplashActivity.this,
//                        Game.class); // 从启动动画ui跳转到主ui
//                startActivity(intent);
//                mySplashActivity.overridePendingTransition(R.anim.in_screen,
//                        R.anim.out_screen);
//                LogoSplashActivity.this.finish(); // 结束启动动画界面
//
//            }
//        }, 3000); // 启动动画持续3秒钟


        //第二种方式

        ImageView logoImage = (ImageView) this.findViewById(R.id.logo_splash);
        AlphaAnimation alphaAnimation = new AlphaAnimation(0.1f, 1.0f);
        alphaAnimation.setDuration(3000);
        logoImage.startAnimation(alphaAnimation);
        alphaAnimation.setAnimationListener(new Animation.AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                Intent intent = new Intent();
                intent.setClass(LogoSplashActivity.this, Game.class);
                intent.setAction(Intent.ACTION_MAIN);
                intent.addCategory(Intent.CATEGORY_LAUNCHER);
                startActivity(intent);
                //startActivity(new Intent("com.google.app.splashy.CLEARSPLASH"));
                finish();
            }
        });
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }

    @Override
    protected void onPause() {
        super.onPause();

    }

    @Override
    protected void onResume() {
        super.onResume();

    }
}

所用的1个layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:id="@+id/logo_splash"
        android:src="@drawable/logo_splash"/>
</LinearLayout>

 

以上是关于android app 闪屏的主要内容,如果未能解决你的问题,请参考以下文章

Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法(转)

Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法

闪屏在android上的react-native应用中不起作用

flutter app闪屏冻结任何方法解决

Android App 在片段中创建 ListView 引用时关闭

android studio3.1 添加闪屏页面(启动欢迎界面)(例子简单无BUG)