ViewPager实现引导页(添加导航点,判断是否第一次进入主界面)

1.引导页的4个界面布局,里面加载一张背景图片
插入到guide的界面布局中(这里不用fragment)
guide_background_fragment1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/guide_background1"/>
</LinearLayout>
guide_background_fragment2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/guide_background2"/>
</LinearLayout>
guide_background_fragment3.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/guide_background3"/>
</LinearLayout>
guide_background_fragment4.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/guide_background4"/>
</LinearLayout>
guide.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.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" /> <LinearLayout
android:id="@+id/l1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_centerInParent="true"
android:layout_alignParentBottom="true"
> <ImageView
android:id="@+id/imageV1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/login_point" /> <ImageView
android:id="@+id/imageV2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/login_point" /> <ImageView
android:id="@+id/imageV3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/login_point" />
<ImageView
android:id="@+id/imageV4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/login_point" />
</LinearLayout>
</RelativeLayout>
2. 适配器
GuidePagerAdapter.java
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter; import java.util.List; public class GuidePagerAdapter extends PagerAdapter{
private Context context;
private List<View> views;
public GuidePagerAdapter(List<View> views, Context context) {
this.context = context;
this.views = views; }
@Override
public int getCount() {
// TODO Auto-generated method stub
return views.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));
return views.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(views.get(position));
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return (arg0 == arg1);
} }
Guide.java
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView; import java.util.ArrayList;
import java.util.List; /**
* Created by zps on 2015/9/3.
*/
public class Guide extends Activity implements ViewPager.OnPageChangeListener { private List<View> listView;
private ViewPager viewPager;
private GuidePagerAdapter vpAdapter;
private int[] dotsId = {R.id.imageV1, R.id.imageV2, R.id.imageV3, R.id.imageV4};
private ImageView[] dotsView;
private Button lijitiyanButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.view_pager);
init();
initDots(); } private void initDots() {
dotsView = new ImageView[listView.size()];
for (int i = 0; i < listView.size(); i++) {
dotsView[i] = (ImageView) findViewById(dotsId[i]);
} } private void init() { LayoutInflater inflater = LayoutInflater.from(this);
listView = new ArrayList<View>();
//获取View对象
View view1 = inflater.inflate(R.layout.view_pager_img1, null);
View view2 = inflater.inflate(R.layout.view_pager_img2, null);
View view3 = inflater.inflate(R.layout.view_pager_img3, null);
View view4 = inflater.inflate(R.layout.view_pager_img4, null); //view对象放在List<view>中
listView.add(view1);
listView.add(view2);
listView.add(view3);
listView.add(view4);
//List<view>放在适配器ViewPagerAdapter中
vpAdapter = new GuidePagerAdapter(listView, this);
//获取ViewPage,设置适配器;
viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(vpAdapter);
viewPager.addOnPageChangeListener(this);
lijitiyanButton =(Button) view4.findViewById(R.id.lijitiyan_button);
lijitiyanButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Guide.this,MainActivity.class);
startActivity(intent);
finish(); }
}); } @Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override
public void onPageSelected(int position) {
for (int i = 0; i < dotsId.length; i++) {
if(i == position){
dotsView[i].setImageResource(R.drawable.login_point_selected);
}else {
dotsView[i].setImageResource(R.drawable.login_point);
}
} } @Override
public void onPageScrollStateChanged(int state) { }
}
3.引导页的判断:是否第一次进入
public class GuideWelcome extends Activity{
private static final int TIME = 2000;
private static boolean isFirstIn = false;
private static final int First = 1000;
private static final int NoFirst = 1001;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case First:
FirstIn();
break;
case NoFirst:
NoFirstIn();
break;
default:
break;
}
}
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
init();
}
private void init() {
//存储文件名为"gudiewelcome"
SharedPreferences sharedPreferences = getSharedPreferences("guidewelcome",MODE_PRIVATE);
isFirstIn = sharedPreferences.getBoolean("isFirstIn",true);
if(!isFirstIn){
handler.sendEmptyMessageDelayed(NoFirst,TIME);
}else {
handler.sendEmptyMessageDelayed(First,TIME);
//存储文件key为isFirstIn,值为false
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("isFirstIn",false);
editor.commit();
}
}
private void FirstIn(){
Intent intent = new Intent(GuideWelcome.this,Guide.class);
startActivity(intent);
finish();
}
private void NoFirstIn(){
Intent intent = new Intent(GuideWelcome.this,TabMainActivity.class);
startActivity(intent);
finish();
}
}
ViewPager实现引导页(添加导航点,判断是否第一次进入主界面)的更多相关文章
- ViewPager实现引导页
1. 要使用ViewPager,必须要创建 PagerAdapter. 这里创建一个 ViewPagerAdapter来继承PagerAdapter public class ViewPagerAda ...
- ViewPager之引导页
一.概述 ViewPager是android-support-v4中提供的类,它是一个容器类,常用于页面之间的切换. 本文介绍ViewPager最基础的应用:在多个View之间进行切换,亦即ViewP ...
- android脚步---APP引导页添加
package com.leadcore.uudatoutie; import java.util.ArrayList; import com.leadcore.uudatoutie.R; impor ...
- ViewPager滑动引导页
ViewPager实现Animation动画引导页 http://blog.csdn.net/ye_scofield/article/details/44831357 SurfaceView实现动 ...
- ViewPager—01引导页的制作
布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...
- ViewPager滑动到最后一页再向左滑动进入主界面
在OnPageChangeListener中的onPageScrolled方法里判断 @Override public void onPageScrolled(int arg0, float arg1 ...
- ViewPager打造轮播图(Banner)\引导页(Guide)
今年7月时,在Github发布了一个开源的Banner库,虽然Star不多,但还是有少部分人使用. Banner效果: 昨天,有使用此库的同学提出需求,想在引导页的时候用这个库并且最后一页有进入按钮 ...
- android使用ViewPager实现欢迎引导页
android使用ViewPager实现欢迎引导页 大多数APP第一次启动的时候,都会有一个引导界面,左右滑动,到最后一张,用户点击才再次进入主界面.当第二次启动的时候,则直接进入主界面. 这种效果一 ...
- Android项目实战(三):实现第一次进入软件的引导页
最近做的APP接近尾声了,就是些优化工作了, 我们都知道现在的APP都会有引导页,就是安装之后第一次打开才显示的引导页面(介绍这个软件的几张可以切换的图) 自己做了一下,结合之前学过的 慕课网_Vie ...
随机推荐
- NGINX:漫谈优化
优化那些事儿 生产环境下网站做前期的优化肯定是比不可少的,简单来说就是用同等条件的硬件资源,处理更多的网站业务,大程度提供网站业务处理能力:前辈留下的实战经验可都是财富,好多坑只有踩过才知道痛,下面就 ...
- Flask知识总汇
Flask基础 Flask基础使用与配置 Flask路由系统与模板系统 Flask视图函数 Flask请求与响应 Flask的session操作 Flask中间件 Flask连接数据库 Flask使用 ...
- 【Maven学习】Nexus OSS私服仓库的安装和配置
背景 公司的代码依赖是通过Maven进行管理的,而Maven的私库我们使用的是Nexus,目前使用的版本是Nexus Repository Manager OSS 2.12.1. 但是由于之前我们搭建 ...
- mysql 数据操作 多表查询 子查询 带比较运算符的子查询
带比较运算符的子查询 #比较运算符:=.!=.>.>=.<.<=.<> #查询大于所有人平均年龄的员工名与年龄 思路 先拿到所有人的平均年龄然后 再用另外一条sql ...
- Apache配置虚拟主机后让其他电脑访问
关于Apache配置虚拟主机后在局域网中让其他电脑访问 #test1# NameVirtualHost *:80 ServerName www.t1.com Document ...
- mysql数据库访问权限限制设置
---只能本地访问,设置随意访问 update user set host='%' where host='localhost': flush privileges; ---随意访问,设置只能本地访问 ...
- FILE 文件的使用 (VC、BCB、Qt)
FILE * fp ;AnsiString filePath="";fp= fopen(filePath.c_str(),"wb");//第二个参数是文件打开方 ...
- MySQL中特有的函数If函数
上面我们已经知道了case函数可以实现逻辑判断,可以是很复杂的逻辑判断,但是如果我们只想实现的是如果这个条件成立就返回A否则就返回B这样简单的逻辑如果用case的话,未免复杂了.我们可以使用if函数来 ...
- [环境配置] 如何为Apache绑定多IP多域名
在Apache服务器上绑定方法比较简单,主要因为Apache是个开源独立的服务器软件,而且支持跨平台安装和配置,支持丰富的API扩展,所以很多人对Apache的好感要甚于IIS,Apache的优点就不 ...
- VS2010/MFC编程入门之十九(对话框:颜色对话框)
鸡啄米在上一节中为大家讲解了字体对话框的使用方法,熟悉了字体对话框,本节继续讲另一种通用对话框--颜色对话框. 颜色对话框大家肯定也不陌生,我们可以打开它选择需要的颜色,简单说,它的作用就是用来选择颜 ...