01-创建工程及Splash界面搭建

项目使用Android Studio开发...


1.Spalsh界面搭建

界面是一个RelativeLayout显示一个背景图,我们把图片资源放到drawable-hdpi目录下(没有的话创建)


对应的activity_splash.xml为:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/bkg">


</RelativeLayout>


2、AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest package="rain.zhihuixian"
          xmlns:android="http://schemas.android.com/apk/res/android">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".SplashActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
</manifest>
3、SplashActivity启动代码:

package rain.zhihuixian;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Window;

import rain.Utils.Contants;
import rain.Utils.SharedPreferencesUtil;

public class SplashActivity extends Activity {

    private static final int GO_HOME = 1000;
    private static final int GO_GUIDE = 1001;
    //延迟三秒
    private static final long SPLASH_DELAY_MILLIS = 3000;
    //private static final String SHAREDPREFERENCES_NAME = "first_pref";

    /**
     * handler:跳转到不同界面
     */
    private Handler mHandler = new Handler()
    {
        public void handleMessage(Message msg)
        {
            switch(msg.what)
            {
                case GO_HOME:
                    goHome();
                    break;
                case GO_GUIDE:
                    goGuide();
                    break;
            }
        }
    };

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_splash);

        init();
    }


    private void init() {
        // TODO Auto-generated method stub

        Boolean isFirstIn = SharedPreferencesUtil.getBoolean(getApplicationContext(), Contants.ISFIRSTENTER, true);
        //判断程序是第几次运行,如果是第一次运行则跳转到引导界面,否则跳转到主界面
        if(!isFirstIn)
        {

            mHandler.sendEmptyMessageDelayed(GO_HOME, SPLASH_DELAY_MILLIS);
        }
        else
        {
            mHandler.sendEmptyMessageDelayed(GO_GUIDE, SPLASH_DELAY_MILLIS);
        }

    }


    /**
     * 进入引导界面
     */
    private void goGuide() {
        // TODO Auto-generated method stub
        Intent intent = new Intent(SplashActivity.this,GuideActivity.class);
        startActivity(intent);
        finish();
    }

    /**
     * 进入主界面
     */
    private void goHome() {
        // TODO Auto-generated method stub

        Intent intent = new Intent(SplashActivity.this,HomeActivity.class);
        startActivity(intent);
        finish();
    }

}


3.1判断用户是否第一次进入应用程序,我们使用SharedPreferences储存数据状态,我们将其抽取到一个工具类中

放到rain-Utils-SharedPreferencesUtil.java

<span style="color:#333333;">package rain.Utils;

import android.content.Context;
import android.content.SharedPreferences;


/**
 * Created by:Rain on  2016/2/20 19:13
 * E-mail: [email protected]
 * Url: http://blog.csdn.net/sinat_33680954
 * 签名: 通过改变自我适应万变的世界    ---Rain
 */
public class SharedPreferencesUtil {
    private static SharedPreferences sp;

    /**
     * 保存boolean值操作
     * @param context
     * @param key
     * @param value
     */
    public static void saveBoolean(Context context , String key , boolean value){
        if (sp == null){
            sp = context.getSharedPreferences("config",Context.MODE_PRIVATE);
        }
        sp.edit().putBoolean(key, value).commit();
    }

    /**
     * 获取保存的boolean值操作
     * @param context
     * @param key
     * @param value
     */
    public static Boolean getBoolean(Context context, String </span><span style="color:#ff0000;">key</span><span style="color:#333333;">, boolean value){
        if (sp == null){
            sp = context.getSharedPreferences("config",Context.MODE_PRIVATE);
        }
       return sp.getBoolean(key,value);
    }
}</span><span style="color:#a9b7c6;">
</span>

3.1、将所需的key保存到接口rain-Utils-Cotants.java

package rain.Utils;

/**
 * Created by:Rain on  2016/2/20 19:29
 * E-mail: [email protected]
 * Url: http://blog.csdn.net/sinat_33680954
 * 签名: 通过改变自我适应万变的世界    ---Rain
 */
public interface Contants {
    /**
     * 应用程序是否第一次打开
     */
    public static final String ISFIRSTENTER = "isfirstenter";
}

4、运行效果图



注:下一篇我们将实现引导界面
GuideActivity及布局的搭建

你可能感兴趣的:(01-创建工程及Splash界面搭建)