文档章节

Android软件欢迎页,viewPager页卡循环的具体详解

淘幻幻
 淘幻幻
发布于 2015/12/13 17:37
字数 732
阅读 46
收藏 0
点赞 0
评论 0

欢迎页面的延时跳转  1.Hander实现延时跳转 2.使用定时器定时执行任务

1.跳转到导航页卡页面  1.ViewPager的使用 2.适配器的使用

2.跳转到欢迎页面  

3.跳转到首页

欢迎页面

使用定时器进行延时

public class WelcomeStartAct extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_welcome_start);
		Timer timer = new Timer();
		timer.schedule(new Task(), 3000);// (匿名对象)方法,定时器延时执行的的方法

	}

	// 内部相当于封装了对象
	class Task extends TimerTask {

		public void run() {
			// 实现页面的跳转 进行判断 是否是第一次跳转
			if (ShareUtils.getWelcomeBoolean(getBaseContext())) {
				startActivity(new Intent(getApplicationContext(), MainActivity.class));

			} else {
				startActivity(new Intent(getApplicationContext(), WelcomeGuideAct.class));
				ShareUtils.putWelcomeBoolean(getBaseContext(), true);
			}
			// getApplicationContext():生命周期是整个应用,应用摧毁,它才摧毁。
			finish();
		}
	}

}

// 延时跳转使用Hander (Hander延时发送接收消息)
		// new Handler(new Callback() {
		// //三秒后去处理接收到的消息的方法
		// public boolean handleMessage(Message msg) {
		// //实现页面跳转
		// startActivity(new Intent(WelcomeStartAct.this,MainActivity.class));
		// return false;
		// }
		// }).sendEmptyMessageDelayed(0, 3000);//延时多少秒进行发送

		// 使用java中定时器来进行延时发送

使用Hander延时发送消息

导航页卡页面

ViewPager自定义使用详解http://blog.csdn.net/lmj623565791/article/details/40411921

public class WelcomeGuideAct extends Activity {

	private ViewPager welcome_pager;
	private Button getInto;
	// 创建动态数组集合
	private int[] mImgIds = new int[] { R.drawable.guide_01, R.drawable.guide_02, R.drawable.guide_03 };
	private List<ImageView> mImageView = new ArrayList<ImageView>();

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_welcome_guide);
		welcome_pager = (ViewPager) findViewById(R.id.welcome_pager);
		getInto = (Button) findViewById(R.id.welcome_guide_btn);
		initViewPager();
	}

	// 进入主页面的方法
	public void getInto(View view) {
		Intent i = new Intent(WelcomeGuideAct.this, MainActivity.class);
		startActivity(i);
		finish();//结束当前页面 防止后退

	}

	// 初始化ViewPager的方法
	@SuppressWarnings("deprecation")
	public void initViewPager() {

		for (int imgId : mImgIds) {
			ImageView imageView = new ImageView(getApplicationContext());
			imageView.setScaleType(ScaleType.CENTER_CROP);
			imageView.setImageResource(imgId);
			mImageView.add(imageView);
		}
		welcome_pager.setAdapter(new MyPagerAdapter());

		// 对页卡ViewPager滑动进行监听
		welcome_pager.setOnPageChangeListener(new OnPageChangeListener() {

			// 页卡被选中的方法
			public void onPageSelected(int arg0) {
				if (arg0 == 2) {// 从0开始算起
					getInto.setVisibility(View.VISIBLE);

				} else {
					getInto.setVisibility(View.GONE);
				}
			}

			//页面滚动时
			public void onPageScrolled(int arg0, float arg1, int arg2) {

			}

			//
			public void onPageScrollStateChanged(int arg0) {

			}
		});

	}

	// 定义ViewPager的适配器
	public class MyPagerAdapter extends PagerAdapter {

		// 计算需要多少个Item进行显示
		public int getCount() {
			return mImgIds.length;
		}

		public boolean isViewFromObject(View arg0, Object arg1) {
			return arg0 == arg1;
		}

		// 重写初始化items实例的方法
		public Object instantiateItem(ViewGroup container, int position) {
			container.addView(mImageView.get(position));// 通过索引位置拿到图片,添加到viewPage人上
			return mImageView.get(position);
		}

		// 滑动时销毁的方法
		public void destroyItem(ViewGroup container, int position, Object object) {
			// 将滑动过去的页卡销毁掉将viewPager的对象进行移除
			container.removeView(mImageView.get(position));
		}
	}
}


判断是否为第一次进入的方法类

/**
 * 实现标记的写入与读取
 *
 */
public class ShareUtils {
	private static final String FILE_NAME = "dingping";
	private static final String MODE_NAME = "welcome";

	public static boolean getWelcomeBoolean(Context context) {
		// 读取一个Boolen标记的值,如果存在
		return context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE).getBoolean(MODE_NAME, false);
	}

	// 写入Boolean类型的值
	public static void putWelcomeBoolean(Context context, boolean isFirst) {
		Editor editor = context.getSharedPreferences(FILE_NAME, Context.MODE_APPEND).edit();
		editor.putBoolean(MODE_NAME, isFirst);
		editor.commit();
	}
}

 源代码:http://pan.baidu.com/s/1nup368h


© 著作权归作者所有

共有 人打赏支持
淘幻幻
粉丝 2
博文 61
码字总数 31665
作品 0
徐州
程序员
Android NestedScrollView/ScrollView包裹ViewPager自适应高度

Android NestedScrollView/ScrollView包裹ViewPager自适应高度 当Android的NestedScrollView/ScrollView这类滚动View包裹ViewPager时候,ViewPager中的Fragment包含的又是一系列高度值不固定...

zhangphil ⋅ 05/12 ⋅ 0

打造万能的BannerView(ViewPager)无限轮播图

为什么写这篇文章,因为在网上看到的绝大多数BannerView实现了右无限轮播图,甚至没有实现无限轮播图,说成是无限轮播图,实现了左右无限轮播图的,并没有做性能上的优化。 先看张效果图 工程...

Steven_520 ⋅ 05/11 ⋅ 0

你真的会用Fragment吗?Fragment复用的那些事儿

作者: @怪盗kidou 如需转载不得删除本文中的任何内容(含本段) 如果博客中有不恰当之处欢迎在原文中留言交流 https://www.jianshu.com/p/31f013df7580 大家好,好像距离上次发布博客好像又...

怪盗kidou ⋅ 05/24 ⋅ 0

从零开发Android视频点播APP

第1章 课程介绍,技术选型 本章将向大家介绍本课程你们学到什么,项目功能模块有哪些,并对技术进行分解,方便大家有针对性的准备和学习,同时会将项目结构设计好,为后面项目的开发做好基础准...

13269051240 ⋅ 05/21 ⋅ 0

想把GridView添加到ViewPager里面。报空指针异常

用TabLayout和ViewPager关联后,想把GridView添加到ViewPager里面。报空指针异常。不知道哪里写错了 04-12 08:39:37.363 25278-25278/? E/AndroidRuntime: FATAL EXCEPTION: main Process: ...

csl232 ⋅ 04/13 ⋅ 0

从零开发Android视频点播APP视频课程 点播APP实战教程

第1章 课程介绍,技术选型 本章将向大家介绍本课程你们学到什么,项目功能模块有哪些,并对技术进行分解,方便大家有针对性的准备和学习,同时会将项目结构设计好,为后面项目的开发做好基础准...

17087075817 ⋅ 05/14 ⋅ 0

Android Fragment 监听hide和show

setUserVisibleHint方法耳熟能详,可是仅仅适用于ViewPager,他是ViewPager中手动调用的,但是正常情况下我们该怎么监听呢? 我们也手动调用不就好了 上addFragment代码 private Fragment m...

qq_36523667 ⋅ 05/10 ⋅ 0

ScrollView 嵌套 ViewPager,ViewPager内容不显示问题

解决办法: 1.简单点的就是重写ViewPager //自定义ScrollView嵌套的ViewPager可显示public class ViewPagerForScrollView extends ViewPager { } 但是有个缺点是有时候几个Fragment高度一样了...

王先森oO ⋅ 05/24 ⋅ 0

Android性能优化:那些不可忽略的绘制优化

前言 在 开发中,性能优化策略十分重要 本文主要讲解性能优化中的绘制优化,希望你们会喜欢。 目录 // 方式2:在 BaseActivity 的 onCreate() 方法中使用下面的代码移除 优化方案2:移除 控件...

Carson_Ho ⋅ 05/21 ⋅ 0

Android 平台的自定义 ViewPager - CoolViewPager

CoolViewPager是一个自定义ViewPager,具有以下功能特征: 支持水平及垂直方向循环滚动 支持自动滚动 支持自动滚动方向、滚动时间、间隔时间的设置 支持调用notifyDataSetChanged实时刷新界面 ...

幻海流心 ⋅ 06/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

线程池

一、线程池:提供了一个线程队列,队列中保存着所有等待状态的线程。避免了创建与销毁额外开销,提高了响应的速度。 二、线程池的体系结构: java.util.concurrent.Executor : 负责线程的使用...

stars永恒 ⋅ 18分钟前 ⋅ 0

你值5K还是15K?实战案例,测测你的分析功力

本文源自陈老师遇到的真实案例。 老板说:“我们今年准备参加展会,做一年。以前我没参加过,没关系,这里有一份展会数据,你回去分析下哪些有价值,后边组织的时候有个指导”。现在你收到任...

加米谷大数据 ⋅ 20分钟前 ⋅ 0

中文转英文功能

package com.sysware.task.util;import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4j.for......

AK灬 ⋅ 21分钟前 ⋅ 0

JNI Java层类关联C/C++层的类

Android开发时,因为要实现某某功能,需要集成算法公司的算法库(so库),这就需要自己编写JNI。 通常这些库提供的接口可以概况成1、初始化 2、算法处理 3、释放 4、打印版本号 初始化后会返...

国仔饼 ⋅ 24分钟前 ⋅ 0

maven下载jar包改为阿里云的maven库

一:修改maven安装路径中conf文件夹下的setting.xml文件 <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/......

夜醒者 ⋅ 25分钟前 ⋅ 0

电商用户行为分析大数据平台相关系列10-基础数据结构分析

电商用户行为分析大数据平台相关系列1-环境介绍 电商用户行为分析大数据平台相关系列2-HADOOP环境搭建 电商用户行为分析大数据平台相关系列3-HIVE安装 电商用户行为分析大数据平台相关系列4...

xiaomin0322 ⋅ 25分钟前 ⋅ 0

使用readLine()方法遇到的坑

下午玩 TCP/IP 的 Socket 通信时,使用 BufferedReader 的 readLine() 遇到了一个坑,现在终于解决了,特此记录下来。 程序很简单,客户段从控制台读取用户输入,然后发送至服务器端,主要代...

孟飞阳 ⋅ 26分钟前 ⋅ 0

基于Hadoop集群的Hive安装配置(Derby数据库)

Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据,提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行(具体的Hive架构大家自行搜索)。接下来主要讲下Hadoop集群下...

海岸线的曙光 ⋅ 27分钟前 ⋅ 0

CoreOS裸机iso安装和相关配置

裸机通过iso安装CoreOS,个人趟了很多坑,以下就是完整的从零开始部署和配置的过程,希望对大家有用。 一、安装CoreOS到硬盘 1. 准备Live iso镜像,制作好usb启动盘 Live iso下载地址 2. 搭建...

ykbj ⋅ 31分钟前 ⋅ 0

jquery控制表格锁列(转)

表格已经完成后新加的需求,要实现锁表格的第一列。很多带这种效果的都是js封装的框架或者具体某种框架的组件,不适用解决当前问题。作为后端开发又实在不熟样式,搜到了一个可以用的,虽然样...

刘昌鑫 ⋅ 34分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部