文档章节

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

淘幻幻
 淘幻幻
发布于 2015/12/13 17:37
字数 732
阅读 49
收藏 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
博文 64
码字总数 32526
作品 0
徐州
程序员
Android ViewPager使用详解

这是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而viewpager就是其中之一利用它,我们可以做很多事情,从最简单的导航,到页面菜单等...

Remix_jx
2014/10/27
0
0
android中ViewPager详解--视图滑动、界面卡等效果 (一)

这是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而viewpager就是其中之一。利用它,我们可以做很多事情,从最简单的导航,到页面菜单...

一别经年
2014/01/21
0
0
ViewPager和TabHost结合

前几天看了网上关于ViewPager实现滑动切换的效果。回来试了一下,发现效果确实不错,但是切换的几个页面只是调用了不同的layout,实际上还是在一个Activity里面,对功能编写就不方便了。所以...

z.net
2012/08/21
0
5
Android UI 特效大全

Android UI特效大全 总体传送门:http://git.oschina.net/bob4j/Android-UI 基本上项目中都有效果图可自行查看 , 并且有些项目中都有README.md 文件,使用前请先阅读以下。 1.弧形(圆形)菜单...

不正经啊不正经
2015/07/31
0
0
Android 使用ViewPager实现左右循环滑动图片

ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵 1. 首先看一...

Carl_
2015/01/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

内存模型是怎么解决缓存一致性的?

在再有人问你Java内存模型是什么,就把这篇文章发给他。这篇文章中,我们介绍过关于Java内容模型的来龙去脉。 我们在文章中提到过,由于CPU和主存的处理速度上存在一定差别,为了匹配这种差距...

Java填坑之路
12分钟前
1
0
vue-cli 3.0 初体验

最近复习了下vue,突然发现vue-cli已经更新到3.0版本了,并且变化蛮大,看来要不停的学习,真是一入前端深似海。 安装步骤: 1、全局安装 npm install -g @vue/cli Vue CLI 的包名称由 vue-...

tianyawhl
14分钟前
0
0
Angular进阶之路

【初级】会写页面,能出东西。 给定环境和 rest API,不用第三方库,能在十分钟内完成一个 master/detail 结构的带路由的应用(可以不管美观)。 知识点:Angular CLI、组件、路由、HTTP 服务...

陆小七的主页
16分钟前
0
0
Redis缓存数据库安全加固指导(一)

背景 在众多开源缓存技术中,Redis无疑是目前功能最为强大,应用最多的缓存技术之一,参考2018年国外数据库技术权威网站DB-Engines关于key-value数据库流行度排名,Redis暂列第一位,但是原生...

中间件小哥
16分钟前
0
0
百万级数据mysql分区

1. 什么是表分区? 表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成。 2. 表分区与分表的区别 分表...

罗文浩
19分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部