安卓笔记之ViewPager页卡
1、在android.support.V4.view包下
2、父类:ViewGroup
3、ViewPager概述:
1) 当前显示页卡组中的一个对象
2) 能够实现左右平滑的效果进行切换
3) 需要设置适配器:PagerAdapter
至少需要实现4个方法:
① getCount():返回显示的页卡总数
② instantiateItem(ViewGroup container, int position)初始化当前position位置的页卡,每次最多能初始化3个页卡的内容。返回一个Object对象(键)
③ isViewFromObject(View agr0,Object arg1):确定是否一个带有特殊键对象的页卡视图。和instantiateItem(ViewGroup container, int position)返回值相关联
④ deStroyItem(ViewGroup container,int position,Object object){ container.removeView(ViewList..get(position))};
ViewList——装载每个页卡视图的集合
移除position位置的View
4、ViewPager的使用
a. 在布局文件中设置ViewPager的属性 <包名.类名>
b. 加载要显示的页卡组
c. 实现适配器的功能
d. 初始化ViewPager,并设置适配器
使用ViewPager设置引导页,小圆点,引导页
1.具体的实现步骤:
第一步:
xml创建布局,调用ViewPager控件,在android.support.v4.view.ViewPager里面
设置ViewPager的ID宽高。然后viewpager.setAdapter(arg0)设置适配器 适配器是将后台数据显示在前台界面的桥梁。
第二步:
方法一:
使用ArrayList设置视图imageView集合。在设置适配器之前添加内容,通过for循环加载图片:int id=getResources().getIdentifier("a"+i图片名称, "drawable"资源类型, getPackageName())应用程序的包名;然后创建imageview对象iv,每循环一次创建一次对象,并且set背景放置id;
把对象iv添加add进imageView集合。
方法二:
使用ArrayList设置View集合,加载的样式以布局样式。layout设置布局,需要几个页面设置几个布局。
加载布局将XML转换成布局需要用到布局过滤器viewList.add(getLayoutInflater()/*布局过滤器*/.inflate/*解析*/(R.layout.pager1, null)),有几个页面就加载几个。
第三步:
设置适配器,建内部类,继承适配器class MyPagerAdapter extends PagerAdapter,重写里面的2个getCount和isViewFromObject方法。
getCount是设置页卡的数量 集合里的元素有多少个就显示多少页,getCount里返回集合的长度。
isViewFromObject是当前的对象是不是视图如果是的话,显示视图
instantiateItem 每次最多能初始化3个页卡的内容position:当前的页卡,往视图组container添加当前的页面container.addView(viewList.get(position));
destroyItem是销毁当前的视图,container.removeView(viewList.get(position));
适配器设置完,返回设置参数viewpager.setAdapter(new MyPagerAdapter )
第四步:
设置小圆圈,OnPageChangeListener手势监听使用,定义手势监听对象,重写三个方法
在XML设置要被使用的线性布局,圆圈要添加在的区域。
声明LinerLayout对象,进行实例化(findViewById),添加的内容用集合表示ArrayList<imageView> pointList=...
往集合添加视图的地方同时添加圆。实例化ImageView iv2=new ImageView(this);
对象调用设置背景方法setBackgroundResource(R.drawable.adware_style_default);
往集合add添加iv2,设置圆点的间距setPadding方法
添加布局:
设置布局参数 LayoutParams params=new LayoutParams(20,15); 定义设置线性布局里的子控件的宽高。
设置手势监听器viewpager.setOnPageChangeListener(new OnPageChangeListener() ,重写监听器的三个方法:
onPageSelected(int arg0)页卡选中 arg0代表页卡选中的id选中的界面
onPageScrolled(int arg0, float arg1, int arg2页卡滑动当前页卡 滑动的百分比 滑动的像素
onPageScrollStateChanged(int arg0)*滑动的状态 0滑动结束 1滑动开始 2滑动中
然后为线性布局添加每个控件linear.addView(pointList.get(i),params);必须写在for循环里。
Params参数代表每一个ImageView 的宽高
第六步:
给圆圈设间隙
params.setMargins(30, 0, 0, 40);//设置间距
设置圆圈切换界面时变化
在页卡滑动onPageScrolled方法里遍历图标集合长度,
当i=当前界面时,pointList.get(arg0).setBackgroundResource(R.drawable.adware_style_selected);使用这张图片
否则的话pointList.get(i).setBackgroundResource(R.drawable.adware_style_default);使用者图片
第六步:
设置引导页完成,浮现按钮跳转界面
创建第二界面的Activity继承Activity,在布局中设置跳转的button,并设置android:visibility="gone"隐藏属性。
在MainActivit的页卡滑动onPageScrolled方法里判断arg0==pointList.size()-1当前页面等于数组长度,button.setVisibility(View.VISIBLE);调用方法显示button。
实例化按钮设置button点击事件,设置跳转界面Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivity(intent);
安卓笔记之ViewPager页卡相关推荐
- Android:ViewPager为页卡内视图组件添加事件
在数据适配器PagerAdapter的初始化方法中添加按钮事件,这里是关键,首先判断当前的页卡编号.必须使用当前的view来获取按钮. @Overridepublic Object instantia ...
- 使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果。
参考自http://www.apkbus.com/android-86125-1-1.html 这篇文章技术含量一般,大家别见笑.源码我以测试,在底部可下载. 好了先上效果图: 以下是实现步骤: ...
- android viewpager 间隔,viewpager 系统兼容 clipChildren 页卡间距
此效果在4.4以下有个bug,两边的会有遮盖,但是一滑动就没事了... 此时需要给viewpager设置onpagerchangedListener 刷新父布局invalidate viewpager ...
- android重置系统,安卓手机越用越卡,恢复出厂设置真有用?别瞎搞,看完就明白了!...
安卓手机越用越卡,恢复出厂设置真有用?别瞎搞,看完就明白了! 现在手机的价格逐渐的开始上升,一部好一点的手机价格还是比较贵的,所以很多人想要节省更多的换机支出,都会想要购买到一款可以使用的比较久的手机 ...
- colab清理gpu缓存_安卓手机为什么会变卡?强制GPU渲染手机就能变流畅?你真的懂吗...
使用过安卓手机的朋友都知道,安卓手机最大的毛病就是卡顿,那你知道安卓手机变卡的原因吗?还有网上很多教程说开启"强制进行GPU渲染"手机就会变流畅,真的是这样吗? 我们先来了解安卓手 ...
- 安卓案例:标签页演示
安卓案例:标签页演示 利用标签页可以充分利用窗口空间显示更多的内容. 一.运行效果
- lfs(systemv版本)学习笔记-第1页
一名linux爱好者,记录构建Linux From Scratch的过程 经博客园-骏马金龙前辈介绍,开始接触学习lfs,用博客记录学习笔记,如有写的不恰当的地方,望多多指正. 笔记中只是记录一些问题 ...
- 安卓手机突然很卡_为什么你的安卓手机越用越卡,真是内存不够?终于找到原因了!...
为什么你的安卓手机越用越卡,真是内存不够?终于找到原因了! 现在在手机市场里基本上是被两个系统瓜分了市场,一个是苹果手机的iOS系统,一个是国产手机的安卓系统.在以前很多用户会选择使用苹果手机,因为苹 ...
- The SwiftProgramming Language读书笔记第26页
· 第26页 The SwiftProgramming Language读书笔记学习笔记第26页 本页主要讨论swift语言里的整形数据和浮点数. 1 int整形,有符号整形数据,是和计 ...
最新文章
- 没事抽空学——常用界面组件属性
- python爬虫赚钱途径-如何利用python爬虫挣钱
- 暑期总结之--c#界面设计作业Mini U-NET(多图杀猫)
- php每天一题:strlen()与mb_strlen()的作用分别是什么
- Thinkpad上安装Ubuntu相关事项
- 通信网络安全分层及关键技术解决
- 数据结构之并查集:路径压缩继续优化并查集——20
- 4-1:shell编程之编写第一个shell脚本
- 暑期训练日志----2018.7.31
- ConnectionRead (WrapperRead())Timeout expired
- Sass中使用@each循环
- 量子计算机采用量子力学原理,物理学:量子计算机的工作是不是就是根据量子力学原理造的?...
- word鼠标右下角有一个小方块_word
- 计算机控制技术结束语,电子商务在线 - 计算机控制技术教学改革探索与实践
- CSS的repeating-radial-gradient()属性-径向渐变
- 希沃白板如何解决手机端播放课件内视频出现黑屏闪退
- 计算机 无法进入pe,电脑无法进入pe系统_电脑无法进入pe界面
- ascii码中的A的代码是什么?
- Android--万能自定义弹窗
- 淘宝、百度、腾讯、新浪开放平台
热门文章
- 北漂家乡买房记:6年至少亏了50% 还无法脱手!
- 微软 CTO 韦青:“程序员 35 岁就被淘汰”是个伪概念
- [编程题]走斜线Java
- will do 和 will be doing的区别
- 【Android探索】基于Android Studio平台的蓝牙遥控APP
- 微软必应词典客户端 案例分析
- 如果没有UX经验,如何创建个人UX作品集?
- 电路方案分析(八)Type-C 端口短路保护参考设计
- 微信小程序开发知识点总结
- Springmvc html上传图片转码为base64通过ajax存入数据库中(纯html存储图片不能使用路径)完整过程