Android成长日记-ViewPager的使用
ViewPager在安卓应用中主要用于作为程序的引导页面,欢迎页面,以及其他的动画效果,下面将给你讲述ViewPager的使用
在Android3.0以上的Api中,提供了ViewPager的接口,所以可以直接使用,但是必须在3.0以上才可以正常使用
---------------------------------------------------------------
下面进入正题
1. 首先在Layout创建一个布局

2. 创建Java代码
① 控件初始化
private ViewPager mViewPager;
mViewPager=(ViewPager)findViewById(R.id.id_ViewPager);
ps:一定要导入import android.support.v4.view.ViewPager;
② 创建数组存放图片的id
private int[] mImagIds=new int[]{R.drawable.guide_image1,R.drawable.guide_image2,R.drawable.guide_image3};
③ 创建集合
Private List<ImageViw> mImages=new ArrayList< ImageView >():
---------------------------初始化&定义结束---------------------
④ 添加ViewPager的适配器
并且添加两个方法:
public Object instantiateItem(ViewGroup container, int position);
public void destroyItem(ViewGroup container, int position, Object object)
第一个方法:
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView=new ImageView(MainActivity.this);
imageView.setImageResource(mImagIds[position]);
imageView.setScaleType(ScaleType.CENTER_CROP); //变换
container.addView(imageView);//加入容器的类型为图片
mImages.add(imageView[s1] );//像集合中添加图片
return imageView; }
第二个方法:
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mImages.get(position[s2] ));
}
第三个方法:
public boolean isViewFromObject(View view, Object arg1) {
return view==arg1;
}
第四个方法:
public int getCount() {
return mImagIds.length;
}
Ps:添加变换的动画

其中DepthPageTransformer这个类是在google官网得到的
(http://developer.android.com/training/animation/screen-slide.html)
(由于国内对google的限制:建议采用虚拟vpn(推荐:XROUTE))
===由于复制google提供的变换动画的类有错误,需要对其进行完善
1. 导入ViewPager的包
2.

[s1]之前给ImageView创建对象,然后再把之前创建的对象添加到集合中
[s2]每当划过这张图片,将这张图片移除(通过它的position移除)
Android成长日记-ViewPager的使用的更多相关文章
- Android成长日记-使用PagerAdapter实现页面切换
Tip:此方式可以实现页面切换 1. 创建view1.xml,view2.xml,view3.xml,main.xml 在main.xml中创建 <android.support.v4.view ...
- Android成长日记-Android四大组件之Service组件的学习
1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它 ...
- Android成长日记-数据存储之SQLite[1]
[SQLite简介] SQLite是R.Richard Hipp用C语言编写的开源嵌入式数据库引擎.它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行 ---支持高达2TB大小的数据库: ...
- Android成长日记-五大布局
1. 五布局之线性布局LinearLayout 特点:它包含的子控件将以横向或竖向的方式排列 ps:android:gravity=”center|bottom”(gravity允许多级联用) Tip ...
- Android成长日记-数据存储之SharedPreferences
数据篇-SharedPreferences Android的四种存储方式 1. SharedPreferences 2. SQLite 3. Content Provider 4. File ---- ...
- Android成长日记-使用ViewFlipper实现屏幕切换动画效果
(一) ViewFlipper介绍 Android系统自带的一个多页面管理控件,它可以实现子界面的自动切换 (二) 为ViewFlipper加入View 1. 静态导入:在Layout布局文件中直接导 ...
- Android成长日记-使用ToggleButton实现灯的开关
案例演示 此案例实现思路:通过ToggleButton控件,ImageView控件实现 ---xml代码: <!-- textOn:true textOff:falase[s1] --> ...
- Android成长日记-使用Intent实现页面跳转
Intent:可以理解为信使(意图),由Intent来协助完成Android各个组件之间的通讯 Intent实现页面之间的跳转 1->startActivity(intent) 2->st ...
- Android成长日记-使用GridView显示多行数据
本节将实现以下效果 Ps:看起来很不错的样子吧,而且很像九宫格/se ----------------------------------------------------------------- ...
随机推荐
- C# Chrome内核
C#将WebBowser控件替换为Chrome内核 摘要 由于最近要做一个浏览器式的软件,其中有不少地方需要使用到jQuery和BootStrap,但是在C#中,默认的WebBrowser控件默认使用 ...
- script实现的日期表示
function clockon(bgclock){ var now=new Date(); var year=now.getYear(); var month=now.getMonth(); var ...
- C# 7.0 新特性4: 返回引用
本文参考Roslyn项目中的Issue:#118. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 ...
- 基于DDD的.NET开发框架 - ABP Session实现
返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...
- web安全——应用(java)
简介 由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对web应用的攻击.据最新调查,信息安全有75%都发生在web应用而非网络层面. 场景 控制访问的权限.只让可以访问的访 ...
- DEV winform treelist设置背景图像
treelist是一个复杂的控件,包括选中行,奇偶行等均可以单独设置显示效果,空白区域上背景图像的代码如下: private void treeList1_CustomDrawEmptyArea(ob ...
- 文本 To 音频
文本 To 音频 TextToSpeech介绍 TextToSpeech,简称 TTS,是Android 1.6版本中比较重要的新功能.将所指定的文本转成不同语言音频输出.它可以方便的嵌入到游戏或 ...
- 浅谈Javascript 中几种克隆(clone)方式
clone就是把原来的东西原样复制一份,新复制的东西和以前的东西没有任何关系 一:在Javascript里,如果克隆对象是基本类型,我们直接赋值就可以了: var sStr = "kingw ...
- Linux配置无线网卡驱动实现无线上网
本机装Linux,需要配置的无线驱动.一般Ubuntu都集成无线驱动,基本上无线可以直接使用! 01.查看无线网卡的型号 [root@Mr-zhao software]# lspci | gre ...
- 【瞎想】TDD与汉字;FDD与英语字母
我觉得TDD与汉字;FDD与英语字母他们之间有相似性. FDD的上行和下行用频率的不同来区分,TDD的上行和下行用相同的频率然后在同一时刻相差半个波长(对称频率).如果用维度数描述,FDD是1维的话, ...