项目使用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>
<?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"; }
注:下一篇我们将实现引导界面GuideActivity及布局的搭建