说明:

ViewPager简单实现,方便以后用。做的是一个全屏的引导页。

截图:

代码:

GuideActivity.java

package com.xinyan.personal.ui.activity;import android.content.Intent;
import android.gesture.GestureUtils;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.annotation.Nullable;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;import com.xinyan.personal.MainActivity;
import com.xinyan.personal.R;
import com.xinyan.personal.adapter.GuideAdapter;
import com.xinyan.personal.util.SPUtils;
import com.xinyan.personal.util.UiUtil;import java.util.ArrayList;
import java.util.List;/*** 引导页* Created by zst on 2017/8/2.*/public class GuideActivity extends BaseActivity implements ViewPager.OnPageChangeListener, View.OnClickListener{private ViewPager vp_guide;private TextView tv_skip;private TextView tv_begin;private ImageView iv_dot_0;private ImageView iv_dot_1;private ImageView iv_dot_2;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_guide);vp_guide = (ViewPager) findViewById(R.id.vp_guide);tv_skip = (TextView) findViewById(R.id.tv_skip);tv_begin = (TextView) findViewById(R.id.tv_begin);iv_dot_0 = (ImageView) findViewById(R.id.iv_dot_0);iv_dot_1 = (ImageView) findViewById(R.id.iv_dot_1);iv_dot_2 = (ImageView) findViewById(R.id.iv_dot_2);tv_skip.setOnClickListener(this);tv_begin.setOnClickListener(this);initBanner();countDownTimer();}@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.tv_begin:SPUtils.setParam(GuideActivity.this, SPUtils.GUIDE_STATUS, true);startActivity(new Intent(GuideActivity.this, MainActivity.class));finish();break;case R.id.tv_skip:SPUtils.setParam(GuideActivity.this, SPUtils.GUIDE_STATUS, true);startActivity(new Intent(GuideActivity.this, MainActivity.class));finish();break;}}//初始化三张引导页private void initBanner() {List<Integer> images = new ArrayList<>();images.add(R.drawable.pic_guide_0);images.add(R.drawable.pic_guide_1);images.add(R.drawable.pic_guide_2);GuideAdapter guideAdapter = new GuideAdapter(GuideActivity.this, images);vp_guide.setAdapter(guideAdapter);vp_guide.addOnPageChangeListener(this);}@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}@Overridepublic void onPageSelected(int position) {setDefalutDot();if(position == 0) {iv_dot_0.setImageResource(R.drawable.ic_ad_dot_check);}if(position == 1) {iv_dot_1.setImageResource(R.drawable.ic_ad_dot_check);}if(position == 2) {iv_dot_2.setImageResource(R.drawable.ic_ad_dot_check);tv_begin.setVisibility(View.VISIBLE);}}@Overridepublic void onPageScrollStateChanged(int state) {}//设置默认的dotprivate void setDefalutDot() {tv_begin.setVisibility(View.GONE);iv_dot_0.setImageResource(R.drawable.ic_ad_dot_default);iv_dot_1.setImageResource(R.drawable.ic_ad_dot_default);iv_dot_2.setImageResource(R.drawable.ic_ad_dot_default);}/*** 5秒倒计时;*/public void countDownTimer() {CountDownTimer timer = new CountDownTimer(5000, 1000) {@Overridepublic void onTick(long millisUntilFinished) {tv_skip.setText("跳过" + millisUntilFinished / 1000);tv_skip.setEnabled(false);}@Overridepublic void onFinish() {tv_skip.setText("跳过");tv_skip.setEnabled(true);}};timer.start();}
}

activity_guide.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent" android:layout_height="match_parent"android:background="@color/bg_efeff4"android:orientation="vertical"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><android.support.v4.view.ViewPagerandroid:id="@+id/vp_guide"android:layout_width="match_parent"android:layout_height="match_parent"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginBottom="20dp"android:orientation="vertical"><TextViewandroid:id="@+id/tv_begin"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:background="@drawable/shape_btn_guide_use"android:text="申请试用"android:textColor="@color/white"android:visibility="gone"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:layout_marginTop="30dp"><ImageViewandroid:id="@+id/iv_dot_0"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/ic_ad_dot_check"/><ImageViewandroid:id="@+id/iv_dot_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:src="@drawable/ic_ad_dot_default"/><ImageViewandroid:id="@+id/iv_dot_2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:src="@drawable/ic_ad_dot_default"/></LinearLayout></LinearLayout><TextViewandroid:id="@+id/tv_skip"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:background="@drawable/shape_btn_guide_second"android:layout_margin="20dp"android:paddingTop="5dp"android:paddingBottom="5dp"android:paddingLeft="10dp"android:paddingRight="10dp"android:clickable="false"android:textSize="11sp"android:text="跳过 5"android:textColor="@color/white"/></RelativeLayout>
</LinearLayout>

GuideAdapter.java

package com.xinyan.personal.adapter;import android.content.Context;
import android.content.Intent;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;import com.bumptech.glide.Glide;
import com.xinyan.personal.R;
import com.xinyan.personal.httpManager.response.NoticeListResponse;
import com.xinyan.personal.ui.activity.MsgDetailActivity;import java.util.List;
import java.util.Map;/*** 引导页配器* Created by zst on 2017/8/2.*/public class GuideAdapter extends PagerAdapter {Context context;List<Integer> viewLists;public GuideAdapter(Context context, List<Integer> lists) {this.viewLists = lists;this.context = context;}@Overridepublic int getCount() {  //获得sizereturn viewLists.size();}@Overridepublic boolean isViewFromObject(View view, Object object) {return view == object;}@Overridepublic void destroyItem(ViewGroup view, int position, Object object) { //销毁Item}@Overridepublic Object instantiateItem(ViewGroup view, int position){ //实例化ItemImageView imageView = new ImageView(context);ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewPager.LayoutParams.MATCH_PARENT,ViewPager.LayoutParams.MATCH_PARENT);imageView.setLayoutParams(params);imageView.setScaleType(ImageView.ScaleType.CENTER);Glide.with(context).load(viewLists.get(position)).into(imageView);view.addView(imageView);return imageView;}
}

Android ViewPager简单实现 - 倒计时、引导页左右滑动相关推荐

  1. Android 只显示一次引导页

    Android 只显示一次引导页 以前一直被网络上的代码坑,这次做个记录,也算是帮一帮正在被坑的人 这个方法不需要创建新的Activity或者Fragment 其实这个功能的逻辑是:当你第一次点击ap ...

  2. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、风扇叶片效果等源码...

    2019独角兽企业重金招聘Python工程师标准>>> Android精选源码 复现网易云音乐引导页效果 高仿书旗小说 Flutter版,支持iOS.Android Android ...

  3. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、爆炸菜单、风扇叶片效果等源码

    Android精选源码 复现网易云音乐引导页效果 高仿书旗小说 Flutter版,支持iOS.Android Android Srt和Ass字幕解析器 Material Design ViewPage ...

  4. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、爆炸菜单、风扇叶片效果等源码...

    Android精选源码 复现网易云音乐引导页效果 高仿书旗小说 Flutter版,支持iOS.Android Android Srt和Ass字幕解析器 Material Design ViewPage ...

  5. 功能引导 android,Flutter实现App功能引导页

    App功能介绍页,主要是由介绍app功能的几张图片和当前页指示符组成,如下效果 我们来一步一步实现上面的界面,左右滑动切换显示功能页,这个可以通过PageView来实现,底部的指示符半透明覆盖在Pag ...

  6. 无陌然个人倒计时引导页源码

    介绍: 可做个人主页,首先会弹出来介绍 然后倒计时后才会进入个人主页的界面 很不错,非常酷,上传解压到根目录即可. 开头的几个字母在Seffects.js修改,其他内容均在index.html文件里自 ...

  7. 唯美官网倒计时引导页源码

    介绍: 非常唯美的一款官网上线倒计时HTML源码. 有喜欢的去自行修改丢到空间即可 网盘下载地址: https://zijiewangpan.com/1CxuMhzsfBe 图片: [外链图片转存失败 ...

  8. html状态查询爱站,简单 自适应 个人 引导页 修复 HTML源码

    已有79位网友发表了看法: a'ゞ顾白  评论于 [2019-03-05 01:03:31] 第一第一第一 爱站云  评论于 [2019-03-30 19:39:48] 又偷源码 亻寸 ?  评论于 ...

  9. Android ViewPager和Fragment实现顶部导航界面滑动效果

    在项目中,我们常常需要实现界面滑动切换的效果.例如,微信界面的左右滑动切换效果.那这种效果是怎么实现的?今天我就带大家简单了解ViewPager,并通过实例来实现该效果. 一. ViewPager 官 ...

最新文章

  1. 普元eos开发手册_名词解释--统一应用(开发)平台Unified Application Platform
  2. 浅谈Http模块,Express和Koa实现http服务
  3. FFmpeg迎来20周年生日!凭一己之力养活全球无数播放器!
  4. Fast implementation/approximation of pow() function in C/C++
  5. 定义入栈java_小师妹学JVM之:java的字节码byte code简介
  6. Java架构师必备框架技能核心笔记,工作感悟
  7. STM32工作笔记0080---UCOSIII系统内部任务
  8. Ubuntu18.04关闭ibus-daemon自启动
  9. asp 基础操作之增删改查
  10. caffee学习——图像切割
  11. 铣削力matlab,船用螺旋桨多轴铣削力仿真与优化+CAD图纸+MATLAB程序
  12. QT QListView
  13. 简述er图的作用_er图的作用是什么
  14. vue手机端回退_从外链回退到vue应用不触发生命周期、beforeRouterEnter等钩子函数的问题...
  15. 批量转换用户的共存模式--Skype for Business to Teams
  16. uclinux开发概述
  17. 什么是Google Voice
  18. 【进制转换】负进制转换 多进制转换
  19. (图)HOLD住!aiwi最新体感游戏强势来袭!!
  20. 运营方案要包括哪些内容_一份完整的运营方案应该包括哪些方面?

热门文章

  1. 财力会计3---存货和销售成本
  2. 这场不一样的2017杭州云栖大会!我们在等你!
  3. .net下遍历数据库服务器的几种方法
  4. 如何从win10中获取3D模型(GLB格式)
  5. Qt 3D的研究(三):显示3D模型
  6. echo on|off
  7. 综艺小王子黄子稻,是否从实力派转为偶像?
  8. SCI论文通讯作者需具备的条件
  9. 51单片机特殊功能寄存器sfr和sbit介绍
  10. 学习笔记:上网认证6 批量wifi 使用 freeradius 实现统一中央认证