Android引导页面

应用引导页是现今App的必需品,通过引导页可以第一时间知道此款软件的特色,如何使用。并且能了解到最新的动态和更新。



第一页,Logo页面或者欢迎页面,判断是否需要进入引导页。

 1 package com.zhang.viewpagerdemo;
 2
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.content.SharedPreferences;
 6 import android.os.Bundle;
 7 import android.os.Handler;
 8 import android.os.Message;
 9
10 public class WelcomeAct extends Activity {
11
12     private boolean isFirstIn = false;
13     private static final int TIME = 2000;
14     private static final int GO_HOME = 1000;
15     private static final int GO_GUIDE = 1001;
16
17     private Handler handler = new Handler() {
18
19         @Override
20         public void handleMessage(Message msg) {
21             super.handleMessage(msg);
22
23             switch (msg.what) {
24                 case GO_HOME:
25                     goHome();
26                     break;
27                 case GO_GUIDE:
28                     goGuide();
29                     break;
30             }
31         }
32     };
33
34     @Override
35     protected void onCreate(Bundle savedInstanceState) {
36         super.onCreate(savedInstanceState);
37         setContentView(R.layout.welcome);
38
39         init();
40     }
41
42     private void init() {
43         SharedPreferences preferences = getSharedPreferences("myWelcome", MODE_PRIVATE);
44         isFirstIn = preferences.getBoolean("isFirstIn", true);
45         if (!isFirstIn) {
46             handler.sendEmptyMessageDelayed(GO_HOME, TIME);
47         } else {
48             handler.sendEmptyMessageDelayed(GO_GUIDE, TIME);
49             SharedPreferences.Editor editor = preferences.edit();
50             editor.putBoolean("isFirstIn", false);
51             editor.apply();
52         }
53     }
54
55     private void goHome() {
56         Intent i = new Intent(WelcomeAct.this, MainActivity.class);
57         startActivity(i);
58         finish();
59     }
60
61     private void goGuide() {
62         Intent i = new Intent(WelcomeAct.this, Guide.class);
63         startActivity(i);
64         finish();
65     }
66 }
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:orientation="vertical"
 7     tools:context="com.zhang.viewpagerdemo.WelcomeAct">
 8
 9     <ImageView
10         android:layout_width="match_parent"
11         android:layout_height="match_parent"
12         android:background="@drawable/welcome_android" />
13
14 </LinearLayout>


引导页面:

 1 package com.zhang.viewpagerdemo;
 2
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.os.Bundle;
 6 import android.support.v4.view.ViewPager;
 7 import android.view.LayoutInflater;
 8 import android.view.View;
 9 import android.widget.Button;
10 import android.widget.ImageView;
11
12 import java.util.ArrayList;
13 import java.util.List;
14
15 /**
16  * Created by Mr.Z on 2016/5/22 0022.
17  */
18 public class Guide extends Activity implements ViewPager.OnPageChangeListener {
19
20     private ViewPager vp;
21     private ViewPagerAdapter vpAdapter;
22     private List<View> views;
23     private ImageView[] dots;
24     private int[] ids = {R.id.iv1, R.id.iv2, R.id.iv3};
25     private Button btnStart;
26
27     @Override
28     protected void onCreate(Bundle savedInstanceState) {
29         super.onCreate(savedInstanceState);
30         setContentView(R.layout.guide);
31
32         initViews();
33
34         initDots();
35     }
36
37     private void initViews() {
38
39         LayoutInflater inflater = LayoutInflater.from(this);
40
41         views = new ArrayList<>();
42         views.add(inflater.inflate(R.layout.one, null));
43         views.add(inflater.inflate(R.layout.two, null));
44         views.add(inflater.inflate(R.layout.three, null));
45
46         vpAdapter = new ViewPagerAdapter(views, this);
47
48         btnStart = (Button) views.get(2).findViewById(R.id.start_btn);
49
50         vp = (ViewPager) findViewById(R.id.viewpager);
51         vp.setAdapter(vpAdapter);
52         vp.setOnPageChangeListener(this);
53
54         btnStart.setOnClickListener(new View.OnClickListener() {
55             @Override
56             public void onClick(View v) {
57                 Intent i = new Intent(Guide.this,MainActivity.class);
58                 startActivity(i);
59                 finish();
60             }
61         });
62
63     }
64
65     private void initDots() {
66         dots = new ImageView[views.size()];
67         for (int i = 0; i < views.size(); i++) {
68             dots[i] = (ImageView) findViewById(ids[i]);
69         }
70     }
71
72     @Override
73     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
74
75     }
76
77     @Override
78     public void onPageSelected(int position) {
79
80     }
81
82     @Override
83     public void onPageScrollStateChanged(int state) {
84         for (int i = 0; i < ids.length; i++) {
85             if (state == i) {
86                 dots[i].setImageResource(R.drawable.login_point_selected);
87             } else {
88                 dots[i].setImageResource(R.drawable.login_point);
89             }
90         }
91     }
92 }
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent">
 5
 6     <android.support.v4.view.ViewPager
 7         android:id="@+id/viewpager"
 8         android:layout_width="match_parent"
 9         android:layout_height="match_parent"
10         android:background="@android:color/black"
11         android:flipInterval="30"
12         android:persistentDrawingCache="animation" />
13
14     <LinearLayout
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:layout_alignParentBottom="true"
18         android:gravity="center_horizontal"
19         android:orientation="horizontal">
20
21         <ImageView
22             android:id="@+id/iv1"
23             android:layout_width="wrap_content"
24             android:layout_height="wrap_content"
25             android:src="@drawable/login_point" />
26         <ImageView
27             android:id="@+id/iv2"
28             android:layout_width="wrap_content"
29             android:layout_height="wrap_content"
30             android:src="@drawable/login_point" />
31         <ImageView
32             android:id="@+id/iv3"
33             android:layout_width="wrap_content"
34             android:layout_height="wrap_content"
35             android:src="@drawable/login_point" />
36     </LinearLayout>
37
38 </RelativeLayout>
 1 package com.zhang.viewpagerdemo;
 2
 3 import android.content.Context;
 4 import android.support.v4.view.PagerAdapter;
 5 import android.support.v4.view.ViewPager;
 6 import android.view.View;
 7
 8 import java.util.List;
 9
10 /**
11  * Created by Mr.Z on 2016/5/22 0022.
12  */
13 public class ViewPagerAdapter extends PagerAdapter {
14
15     private List<View> views;
16     private Context context;
17
18     public ViewPagerAdapter(List<View> views, Context context) {
19         this.views = views;
20         this.context = context;
21     }
22
23     @Override
24     public void destroyItem(View container, int position, Object object) {
25         ((ViewPager) container).removeView(views.get(position));
26     }
27
28     @Override
29     public Object instantiateItem(View container, int position) {
30
31         ((ViewPager) container).addView(views.get(position));
32
33         return views.get(position);
34     }
35
36     @Override
37     public int getCount() {
38         return views.size();
39     }
40
41     @Override
42     public boolean isViewFromObject(View view, Object object) {
43         return (view == object);
44     }
45 }


主页面:

 1 package com.zhang.viewpagerdemo;
 2
 3 import android.support.v7.app.AppCompatActivity;
 4 import android.os.Bundle;
 5
 6 public class MainActivity extends AppCompatActivity {
 7
 8     @Override
 9     protected void onCreate(Bundle savedInstanceState) {
10         super.onCreate(savedInstanceState);
11         setContentView(R.layout.activity_main);
12     }
13 }
时间: 2024-08-25 15:40:52

Android引导页面的相关文章

Android实战简易教程-第四十八枪(App引导页面效果实现)

经常使用APP的童鞋会发现,第一次进入APP会有引导页面,里面可以放一些APP的使用介绍或其他信息等等,下面我们研究一下如何实现这个功能,增加APP的体验. 一.自定义控件继承ViewGroup: package com.genius.scroll; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.util

Android开发之使用ViewPager做引导页面

引导页面相信大家都不会陌生,安装了一个新的App后第一次打开,都会有类似下图,相当于说明文档 实现效果 程序目录结构 在主layout里main.xml定义一个帧布局,在viewPager上有多少页就显示多少个点 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android开发必知--WebView加载html5实现炫酷引导页面

大多数人都知道,一个APP的引导页面还是挺重要的,不过要想通过原生的Android代码做出一个非常炫酷的引导页相对还是比较复杂的,正巧html5在制作炫酷动画网页方面比较给力,我们不妨先利用html5做出手机引导页面,然后将其嵌入APP中. 首先我们分析一下,都需要做哪些工作? 1.制作html5引导页面. 2.把做好的页面放入Android工程中assets文件夹下. 3.利用WebView加载asset文件夹下的html文件. 4.在引导页最后一页的按钮上捕捉点击事件,结束引导页,进入程序.

Android 启动页面引导页面登陆注册主页通用框架

写这个不是因为这个很难,而是发现特么每次新写一个项目都要写这些东西,不如就把他们拿出来,以后可以省下不少时间. 1:启动页面   一个动画 然后进入app 2:第一次打开的引导页面 3:登陆界面(当然这块ui会有不同需求,但是改吧改吧就行了) 4:注册界面(同登陆界面) 5:主界面 6:一些通用控件(这里就放了一个dialog,下拉刷新上拉加载控件) 基本就这些内容,每次都写或者拷贝一次,也蛮浪费时间的,下面就一步一步放上来,也希望对有些刚工作同志一些帮助 这里就简单放了一个 颜色渐变的动画,置

Android AnimationDrawable动画与APP启动引导页面

Android AnimationDrawable动画与APP启动.加载引导页面(画面) AnimationDrawable是Android的Frame动画,可以简单的认为此AnimationDrawable能够将一系列资源图片加载成"电影"一样播放.当下,在一些APP中,往往需要在APP切入主题之前加载一些引导页面(宣传海报.装饰画面.赞助商广告等等),这些内容要两个共同特点: (1)不是APP的重点内容,而仅仅只是像展台一样展览一些画面. (2)前.当前.后页面基本上无特别需要处理

进阶篇-用户界面:11.启动界面和引导页面

SplashScreen.java import java.io.File; import java.io.OutputStream; import com.baite.tools.AssetDatabaseManager; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; impor

十八、Android引导界面

一.所需素材 很有必要整理一下,里面附带友盟的社会化分享组件,我就不去掉了. 二.代码 import com.umeng.update.UmengUpdateAgent; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import an

乐乐音乐播放器(三) 第一次引导页面

源码地址: http://www.eoeandroid.com/thread-584730-1-1.html 应用在第一次启动时,应先进入引导页面.怎样判断应用是否是第一次使用呢?这里我使用SharedPreferences 和 酷狗的 引导页面为例子,大概看了一下酷狗apk包里面的图片,发现酷狗的文字动画 里的文字 原来是 图片文字,不过这里我 就不用它 的图片文字,而是用textview来实现. 首先定义一个 Constants 类来 储存 SharedPreferences 配置文件的 内

ViewPager实现启动引导页面(个人认为很详细)

效果如图: 启动页面是一张图片+延时效果,这里就不给出布局文件了. WelcomeActivity分析:在启动页面检测是否是第一次运行程序,如果是,则先跳转到引导界面的Activity——AndyViewPagerActivity:否,则直接跳转到MainActivity. 判断很简单,使用SharedPreferences. WelcomeActivity.java具体实现: package com.example.qidong; import android.os.Bundle; impor