设置闪屏以及跳转到登陆界面实例演示

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"wKioL1VpUMzBVyHdAACPoJaNEjU280.jpg

    android:layout_height="fill_parent">



    <ImageView

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:id="@+id/imageView3"

        android:src="@drawable/splash" />

</LinearLayout>


闪屏以及跳转到Mainactivity!

package com.example.administrator.myapplication;



import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.KeyEvent;



/**

 * Created by Administrator on 2015/5/30.

 */

public class SplashyDemo extends Activity {

    private long m_dwSplashTime=1000;

    private boolean m_bPaused=false;

    private boolean m_bSplashActive=true;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.splashdemo);


        Thread splashTimer=new Thread()

        {

            public void run(){

                try{

                    //wait loop

                    long ms=0;

                    while(m_bSplashActive && ms<m_dwSplashTime){

                        sleep(100);


                        if(!m_bPaused)

                            ms+=100;

                    }

      Intent intent=new Intent(SplashyDemo.this,MainActivity.class);

                    startActivity(intent);

                }

                catch(Exception ex){

                    Log.e("Splash", ex.getMessage());

                }

                finally{

                    finish();

                }

            }

        };

        splashTimer.start();

    }


    @Override

    protected void onPause() {

        super.onPause();

        m_bPaused=true;

    }


    @Override

    protected void onResume() {

        super.onResume();

        m_bPaused=false;

    }


    @Override



    public boolean onKeyDown(int keyCode, KeyEvent event) {

        super.onKeyDown(keyCode, event);

        switch(keyCode){

            case KeyEvent.KEYCODE_MENU:

                m_bSplashActive=false;

                break;

            case KeyEvent.KEYCODE_BACK:

            /*两种退出方法*/

            /* System.exit(0);*/

            /* android.os.Process.killProcess(android.os.Process.myPid());*/

                android.os.Process.killProcess(android.os.Process.myPid());

                break;

            default:

                break;

        }

        return true;

    }

}

   

  1)变量解释:

  m_dwSplashTime:long 类型,为闪屏界面停留的时间,这儿设置为3000也就是3秒

 m_Paused: bool 类型,设置该变量可以使得程序暂停在闪屏界面

 m_bSplashActive:bool类型,设置该变量可以跳过闪屏,从而快速竟如主程序界面


 2)程序结构解释:

  SplashyDemo继承自Activity,且是程序启动的第一个界面(查看),所以要实现闪屏,我们需要开启一个线程,以便在1秒钟之后进入主界面。这些主要有一个while循环来实现

  1秒钟结束或者用户选择跳过闪屏后,程序会调用startActivity函数来跳到主界面

第二种方法:

这是一个不能打断闪屏,只能被动的接受闪屏结束的方法 。对于这种方法,就不做实例了,如果读者自己感兴趣的话可以自己尝试着做一下。


import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.os.Handler;


public class StartActivity extends Activity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_star);


        // 闪屏的核心代码

        new Handler().postDelayed(new Runnable() {

            @Override

            public void run() {

                Intent intent = new Intent(StartActivity.this,

                        MainActivity.class); // 从启动动画ui跳转到主ui

                startActivity(intent);

               /* overridePendingTransition(

                        R.anim.push_left_out,R.anim.push_left_in);*/

                StartActivity.this.finish(); // 结束启动动画界面


            }

        }, 1500);

    }


}



你可能感兴趣的:(源代码,闪屏,闪屏之后跳转)