Hi,欢迎来到华清远见移动互联网学院官网!国内王牌JAVAEE培训、Android培训、HTML5培训、UI培训、JAVA培训、VR培训机构!

  • 400-611-6270
  • 新浪微博
  • 微信
您当前的位置:移动互联网学院 > Android开发 > Android启动页和导航页制作

Android启动页和导航页制作

时间:2017-06-16 09:19 来源:移动互联网学院

1、 引言:随着Android应用的推广,我们发现很多应用都会有一个启动页面首先慢慢隐现,然后再慢慢消隐。如果第一次启动或升级该应用,启动页面过后会进入到一个导航页面,目的是为了给用户介绍该应用的特点或升级后的改进。所以Android应用的启动页与导航页的制作也是非常常见。本篇博客,就为大家分享一下Android应用启动页与导航页的其中一种制作方式。

2、 效果如下:

首次启动

3、 实现步骤:

1) 准备三个Activity与界面,分别是SplashActivity(启动页)、GuideActivity(导航页)与MainActivity(主页)。

2) 实现SplashActivity界面延时,并准备两个方法goGuide(),goHome()分别跳转到之后的GuideActivty(导航页)和MainActivity(主页)。

3) GuideActivity中使用ViewPager和Fragment实现页面滚动,并在最后一个Fragment中制作一个跳转到MainActivity页面的Button。

4) 实现判断第一次启动APP,在SplashActivity中使用SharedPreferences储存APP的开启状态,之后进行判断,如果第一次启动实现goGuide()方法,跳转到导航页,否则直接进入主页。

4、 涉及知识点:

1) SharedPreferences存储,实现应用开启状态保存

SharedPreferences sharedPreferences = this.getSharedPreferences("share", MODE_PRIVATE);

Boolean user_first = sharedPreferences.getBoolean("FIRST", true);

Editor editor = sharedPreferences.edit();

2) sendEmptyMessageDelayed方法,实现界面延时

handler.sendEmptyMessageDelayed(GO_GUIDE, DELAY);

5、 代码实现:

1) SplashActivty:

package com.farsight.zguidesplash;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.app.Activity;

import android.content.Intent;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.view.Window;

public class SplashActivity extends Activity {

private static final int GO_HOME = 1000;// 跳转到主页标识

private static final int GO_GUIDE = 1001;// 跳转到导航页标识

private static final int DELAY = 3000;// 延时时间

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_splash);

init();

}

private void init() {

SharedPreferences sharedPreferences = this.getSharedPreferences(

"share", MODE_PRIVATE);

Boolean user_first = sharedPreferences.getBoolean("FIRST", true);

Editor editor = sharedPreferences.edit();// 使用SharedPreferences存储应用开启状态

if (user_first) {// 判断是否为第一次开启APP,并将标识传给Handler机制

editor.putBoolean("FIRST", false);

editor.commit();

handler.sendEmptyMessageDelayed(GO_GUIDE, DELAY);

} else {

handler.sendEmptyMessageDelayed(GO_HOME, DELAY);

}

}

private Handler handler = new Handler() {// 通过接收到的标识实现具体方法,跳转到主页或导航页

@Override

public void handleMessage(Message msg) {

// TODO Auto-generated method stub

switch (msg.what) {

case GO_HOME:

goHome();

break;

case GO_GUIDE:

goGuide();

break;

}

}

};

public void goHome() {// 跳转到主页

startActivity(new Intent(SplashActivity.this, MainActivity.class));

finish();

}

public void goGuide() {// 跳转到导航页

startActivity(new Intent(SplashActivity.this, GuideActivity.class));

finish();

}

}

2) GuideActivity:

package com.farsight.zguidesplash;

import java.util.ArrayList;

import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentActivity;

import android.support.v4.app.FragmentManager;

import android.support.v4.app.FragmentPagerAdapter;

import android.support.v4.view.ViewPager;

import android.view.Window;

import com.farsight.fragment.FirstFragment;

import com.farsight.fragment.LastFragment;

import com.farsight.fragment.SecondFragment;

public class GuideActivity extends FragmentActivity {

private ViewPager viewPager;

private ArrayList<Fragment> pagerData;

@Override

protected void onCreate(Bundle savedInstanceState) {

requestWindowFeature(Window.FEATURE_NO_TITLE);

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_guide);

initID();

initPager();

setViewPager();

}

public void initID() {// 初始化UI组件

viewPager = (ViewPager) findViewById(R.id.viewPager_Guide);

}

public void initPager() {// 初始化ViewPager中的Fragment页面

pagerData = new ArrayList<Fragment>();

pagerData.add(new FirstFragment());

pagerData.add(new SecondFragment());

pagerData.add(new LastFragment());

}

public void setViewPager() {// 设置ViewPager

viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));

}

private class ViewPagerAdapter extends FragmentPagerAdapter {// ViewPager适配器

public ViewPagerAdapter(FragmentManager fm) {

super(fm);

// TODO Auto-generated constructor stub

}

@Override

public Fragment getItem(int arg0) {

// TODO Auto-generated method stub

return pagerData.get(arg0);

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return pagerData.size();

}

}

}

  • 北京

    010-82600385/6

    北京市海淀区西三旗悦秀路北京明园大学校内

  • 上海

    021-54485127

    上海市徐汇区漕溪路250号银海大楼11层

  • 深圳

    0755-25590506

    深圳市龙华新区人民北路美丽AAA大厦15层

  • 成都

    028-85405115

    成都武侯区科华北路99号科华大厦2层

  • 南京

    025-86551900

    南京市白下区汉中路185号鸿运大厦11层

  • 武汉

    027-87804688

    武汉工程大学卓刀泉校区科技孵化器大楼11层

  • 西安

    029-88756251

    西安市高新区高新1路12号天公大厦3层

  • 广州

    020-38342087

    广州市天河软件园柯木塱园5栋三层

  • 沈阳

    024-24349000

    沈阳市沈河区北顺城路137号锦峰大厦7层

  • 济南

    0531-88898293

    济南市高新区舜华路三庆世纪财富中心B3座6层

  • 重庆

    023-68064704

    重庆市九龙坡区渝州路87号双薪时代九楼

  • 长沙

    15010390966

    长沙市开福区芙蓉中路海东青大厦B座11楼

Copyright © 2004-2017 华清远见教育集团 版权所有,沪ICP备10038863号-3,京公海网安备110108001117号