您好,登錄后才能下訂單哦!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/p_w_picpathView3"
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);
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。