android 引导页作用,【Android】如何实现启动APP时引导页、欢迎页功能之(一)引导页功能的实现...

1、首先我们谈谈布局界面

关于第一个关键点(左右滑动切换页面 ),我们用ViewPager作容器,实现左右滑动切换。那个小圆点我们用LinearLayout就可以布局。activity_guide.xml代码如下:

android:id="@+id/activity_guide"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/guide_ViewPager"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/dot_Layout"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:gravity="center"

android:layout_marginBottom="45dip"

>

2、引导页面的适配器VpAdapter

package com.example.lushuai.caffeapp.adapter;

/**

* 引导页activity_Guide 的ViewPager适配器

*/

import android.support.v4.view.PagerAdapter;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ImageView;

import java.util.ArrayList;

/**

* Created by Administrator on 2017/3/6.

*/

public class VpAdapter extends PagerAdapter {

private ArrayList imageViews;

public VpAdapter(ArrayList imageViews) {

this.imageViews = imageViews;

}

/**

* 获取当前要显示对象的数量

*/

@Override

public int getCount() {

// TODO Auto-generated method stub

return imageViews.size();

}

/**

* 判断是否用对象生成界面

*/

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

// TODO Auto-generated method stub

return arg0 == arg1;

}

/**

* 从ViewGroup中移除当前对象(图片)

*/

@Override

public void destroyItem(ViewGroup container, int position, Object object) {

container.removeView(imageViews.get(position));

}

/**

* 当前要显示的对象(图片)

*/

@Override

public Object instantiateItem(ViewGroup container, int position) {

container.addView(imageViews.get(position));

return imageViews.get(position);

}

}3、下面来谈一谈关键代码

3.1、私有化(声明)变量当然是一开始我们就要做的

laugh.gif,其中将3张已经P好的引导页图片置于一个数组中,dotView就是底中部的小圆点,并且引入了我们已经写好的适配器VpAdapter。private ViewPager vPager;

private VpAdapter vpAdapter;

private static int[] imgs = {R.drawable.welcomepage1,R.drawable.welcomepage2, R.drawable.welcomepage3};

private ArrayListimageViews;

private ImageView[] dotViews;//小圆点3.2、实现关键点3(点击引导页最后的最后一张实现跳转到主界面),点击----我们就要想到监听(Listener)事件,所以我们要在这里implements监听事件功能,我们的图片是放在vierpagerl里面的,所以是如下:public class activity_Guide extends AppCompatActivity implements ViewPager.OnPageChangeListener对于每张引导页的图片我们都是需要让他充满窗口的,在XML布局文件里我们已经设置了match_parent(完全匹配父控件),在这里我们再来通过这句话设置一下:ViewPager.LayoutParams mParams = new ViewPager.LayoutParams();

接下来把引导页要显示的图片添加到集合中,以传递给适配器,用来显示图片。

@Override

private void initImages(){

//设置每一张图片都填充窗口

ViewPager.LayoutParams mParams = new ViewPager.LayoutParams();

imageViews = new ArrayList();

for(int i=0; i

{

ImageView iv = new ImageView(this);

iv.setLayoutParams(mParams);//设置布局

iv.setImageResource(imgs[i]);//为ImageView添加图片资源

iv.setScaleType(ImageView.ScaleType.FIT_XY);//这里也是一个图片的适配

imageViews.add(iv);

if (i == imgs.length -1 ){

//为最后一张图片添加点击事件

iv.setOnTouchListener(new View.OnTouchListener(){

@Override

public boolean onTouch(View v, MotionEvent event){

Intent toMainActivity = new Intent(activity_Guide.this, MainActivity.class);//跳转到主界面

startActivity(toMainActivity);

return true;

}

});

}

}

}3.3、最后就是小圆点的实现,以及设置根据滑动页面的索引值,来设置小圆点的状态

我在这里是通过xml文件设置的简单小圆点,你也可以自己设置自己喜欢的颜色,或者自己p一个小圆点的图片也是可以的。此dotselector.xml文件放于drawable文件夹下面。设置了未选中状态和选中的状态的颜色,分别对应的是浅灰色和深灰色,代码如下<?xml version="1.0" encoding="utf-8"?>

以下是小圆点数量判断以及小圆点之间的间隔&小圆点默认启动显示的位置

private void initDots(){

LinearLayout layout = (LinearLayout)findViewById(R.id.dot_Layout);

LinearLayout.LayoutParams mParams = new LinearLayout.LayoutParams(20, 20);

mParams.setMargins(10, 0, 10,0);//设置小圆点左右之间的间隔

dotViews = new ImageView[imgs.length];

//判断小圆点的数量,从0开始,0表示第一个

for(int i = 0; i < imageViews.size(); i++)

{

ImageView imageView = new ImageView(this);

imageView.setLayoutParams(mParams);

imageView.setImageResource(R.drawable.dotselector);

if(i== 0)

{

imageView.setSelected(true);//默认启动时,选中第一个小圆点

}

else {

imageView.setSelected(false);

}

dotViews[i] = imageView;//得到每个小圆点的引用,用于滑动页面时,(onPageSelected方法中)更改它们的状态。

layout.addView(imageView);//添加到布局里面显示

}

}下面就是小圆点功能最最最关键的代码,根据当前页面的索引值来设置小圆点的状态public void onPageSelected(int arg0) {

for(int i = 0; i < dotViews.length; i++)

{

if(arg0 == i)

{

dotViews[i].setSelected(true);

}

else {

dotViews[i].setSelected(false);

}

}

写在最后关于mainfests文件的设置,我们引导页一般设置为全屏,所以我们先自定义样式风格,以下是mainfests代码。

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl="true"

android:theme="@style/AppTheme">

android:theme="@style/FullScreen">

android:theme="@style/FullScreen"/>

自定义样式风格直接在styles.xml文件中加上下面功能代码就可以

true //设置全屏

true //设置没有状态栏

20sp

bold|italic

效果预览图

b52a73d594ec1c2ab7af5735487f01a9.gif

Demo地址:http://download..net/detail/yuxunye85/9888504

转载请加上链接http://blog..net/yuxunye85/article/details/74292237

希望大家多多交流,共同学习共同进步;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值