博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用ViewPager实现android软件使用向导的功能
阅读量:4338 次
发布时间:2019-06-07

本文共 2937 字,大约阅读时间需要 9 分钟。

  现在的大部分android软件,都是使用说明,就是第一次使用该软件时,会出现向导,可以左右滑动,然后就进入应用的主界面了。

  先看下效果图:

  

  首先需要一个布局文件,是FlameLayout组成的,里面包含了一个ViewPager和一个RelativeLayout,RelativeLayout里面是一个LinearLayout,LinearLayout里面是准备放ImageView,动态添加。

  布局文件如下:

 

  另外我们需要4个布局文件,就是向导要显示的图片,每个布局文件是一页,每个布局文件里面都是一个ImageView。如下所示:

布局文件一:

  

1 
2
6 7
"11 12

布局文件二:

 

1 
2
6 7
11 12

布局文件三:

1 
2
6 7
"11 12

布局文件四:

1 
2
6 7
"11 12

 

然后在代码里面加载这4个布局文件和主布局文件:

Activity代码:

1 package com.alex.helloworld;  2   3 import java.util.ArrayList;  4   5 import android.app.Activity;  6 import android.os.Bundle;  7 import android.os.Parcelable;  8 import android.support.v4.view.PagerAdapter;  9 import android.support.v4.view.ViewPager; 10 import android.support.v4.view.ViewPager.OnPageChangeListener; 11 import android.view.LayoutInflater; 12 import android.view.View; 13 import android.view.ViewGroup.LayoutParams; 14 import android.view.Window; 15 import android.widget.FrameLayout; 16 import android.widget.ImageView; 17 import android.widget.LinearLayout; 18  19 public class HelloWord2 extends Activity implements OnPageChangeListener { 20      21     private ArrayList
mPageViews; 22 private LayoutInflater mInflater; 23 private LinearLayout mGroups; 24 private FrameLayout mMain; 25 private ViewPager mViewPager; 26 private ImageView[] mImageViews; 27 28 @Override 29 protected void onCreate(Bundle savedInstanceState) { 30 super.onCreate(savedInstanceState); 31 requestWindowFeature(Window.FEATURE_NO_TITLE); 32 mInflater = LayoutInflater.from(this); 33 mPageViews = new ArrayList
(); 34 mPageViews.add(mInflater.inflate(R.layout.item_0, null)); 35 mPageViews.add(mInflater.inflate(R.layout.item_1, null)); 36 mPageViews.add(mInflater.inflate(R.layout.item_2, null)); 37 mPageViews.add(mInflater.inflate(R.layout.item_3, null)); 38 39 mMain = (FrameLayout) mInflater.inflate(R.layout.hello2, null); 40 mGroups = (LinearLayout) mMain.findViewById(R.id.viewGroup); 41 mViewPager = (ViewPager) mMain.findViewById(R.id.guidePages); 42 mImageViews = new ImageView[mPageViews.size()]; 43 44 for(int i=0; i

 

  首先从LayoutInflater里面加载4个要显示的布局和主布局文件。

  然后把布局文件作为View放到一个ArrayList里面。

  然后从主布局里面找到ViewPager和LinearLayout,ViewPager用来装载4个布局文件,LinearLayout用来装载4个提示图标。

  然后新建4个ImageView,并设置对应的背景,然后作为View添加到LinearLayout里面去。

  然后给ViewPager设置Adapter,设置onPageChangeListener。

  Adapter里面要设置getCount,就是页面的个数,我们这里是4个,就设置4;

  同时在instantiateItem里面讲对应的页面add进去,并返回对应的页面。

  在destroyItem的时候讲页面remove掉。

  在选择页面的方法里面onPageSelected里面设置选中图标的背景。

  就这些。

  下载源代码:

转载于:https://www.cnblogs.com/shang53880/p/3443436.html

你可能感兴趣的文章
阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
查看>>
阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
查看>>
阶段3 2.Spring_02.程序间耦合_5 编写工厂类和配置文件
查看>>
阶段3 2.Spring_01.Spring框架简介_05.spring的优势
查看>>
阶段3 2.Spring_02.程序间耦合_7 分析工厂模式中的问题并改造
查看>>
阶段3 2.Spring_02.程序间耦合_4 曾经代码中的问题分析
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
查看>>
阶段3 2.Spring_02.程序间耦合_8 工厂模式解耦的升级版
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
查看>>
阶段3 2.Spring_04.Spring的常用注解_2 常用IOC注解按照作用分类
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_04.ssm整合之编写SpringMVC框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_5、SpringBoot2.x的依赖默认Maven版本...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_9、SpringBoot基础HTTP其他提交方法请求实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_12、SpringBoot2.x文件上传实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_19、SpringBoot个性化启动banner设置debug日志...
查看>>