ViewPager是V4包中的,如果你的编译器敲不出ViewPager,那么你就需要添加,看下面:

第一步:点击+号

第二步:选择第一个Library

第三步:添加这个包:

然后点击ok-->ok就搞定了,编译器会从新进行预编译。

下面就是重点了,我们先看布局文件:

 <android.support.v4.view.ViewPager
         android:id="@+id/ViewPager"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         />

ps:果然敲的时候有自动提示,说明你添加成功了。

然后是代码:

 public class MainActivity extends Activity {

     private ViewPager viewPager;
     private ArrayList<ImageView> mImageViewList;
     private int[] mImagerIds = new int[]{R.drawable.guide_1,R.drawable.guide_2,R.drawable.guide_3};

     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

         viewPager = (ViewPager) findViewById(R.id.ViewPager);
         initData();
         ViewPagerAdapter adapter = new ViewPagerAdapter();
         viewPager.setAdapter(adapter);
     }

     public void initData(){
         mImageViewList = new ArrayList<>();
         //把所有的ImageView都添加都mImageViewList的集合中
         for (int i=0; i<mImagerIds.length; i++){
             //新建一个ImgeView将图片资源添加到ImageView中
             ImageView imageView = new ImageView(this);
             imageView.setBackgroundResource(mImagerIds[i]);
             //将ImageView添加到mImageViewList的集合中
             mImageViewList.add(imageView);
         }

     }

     class ViewPagerAdapter extends PagerAdapter {

         //item的个数
         @Override
         public int getCount() {
             return mImageViewList.size();
         }

         @Override
         public boolean isViewFromObject(View view, Object object) {
             return view==object;
         }

         //初始化item布局
         @Override
         public Object instantiateItem(ViewGroup container, int position) {
             ImageView imageView = mImageViewList.get(position);
             container.addView(imageView);//将imageView添加进来
             return imageView;//将imageView返回
         }

         //销毁Item
         @Override
         public void destroyItem(ViewGroup container, int position, Object object) {
             //super.destroyItem(container, position, object);//如果用这个一出Item的话滑到最后一个会报错
             container.removeView((View)object);
         }
     }
 }

思路:先将图片资源放到一个int[]中,然后在for循环里面循环创建ImageView设置图片资源,再把ImageView添加到ArrayList集合中,然后在instantiateItem()方法中初始化item,把ImageView集合中的ImageView添加到ViewGroup中,然后返回ImageView,销毁ImageView的时候不能用super.destroyItem(container, position, object);,这个会导致滑到最后一个ImageView时报错。

Android开发之ViewPager的简单使用的更多相关文章

  1. Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab

     今天我们要实现的这个效果呢,在Android的应用中十分地常见,我们可以看到下面两张图,无论是系统内置的联系人应用,还是AnyView的阅读器应用,我们总能找到这样的影子,当我们滑动屏幕时,Tab可 ...

  2. Android开发之ViewPager实现多页面切换及动画效果(仿Android的Launcher效果)

    Android开发中经常会有引导页或者切换页面等效果,本文采用ViewPager结合动画效果来实现仿Launcher以及页面切换的效果.源码地址在文章最后给出下载. 效果图如下:       1.Vi ...

  3. Android开发之ViewPager

    什么是ViewPager? ViewPager是安卓3.0之后提供的新特性,继承自ViewGroup,专门用以实现左右滑动切换View的效果. 如果想向下兼容就必须要android-support-v ...

  4. Android开发之ViewPager实现轮播图(轮播广告)效果的自定义View

    最近开发中需要做一个类似京东首页那样的广告轮播效果,于是采用ViewPager自己自定义了一个轮播图效果的View. 主要原理就是利用定时任务器定时切换ViewPager的页面. 效果图如下: 主页面 ...

  5. Android开发之ViewPager做新手引导界面

    先看一下我们要开发的界面(三张图片,滑到最后一个会出现开始体验的Button,下面的小红点会跟着一起滑动): 首先看一下布局文件: <?xml version="1.0" e ...

  6. Android开发之AutoCompleteTextView的简单使用

    这里只谈简单的使用: 代码xml: <AutoCompleteTextView android:id="@+id/actv" android:layout_width=&qu ...

  7. Android开发之viewpager导报错误解决方法:错误代码 Caused by: java.lang.ClassNotFoundException: Didn't find class

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 Caused by: java.lang.ClassNotFoundException: Didn't ...

  8. Android开发之ContentProvider的简单使用

    ContentProvider,内容提供者 官网结构图: 作为四大组件之一的ContentProvider,主要是用于应用间数据共享使用的. ContentProvider把应用的数据封装起来,然后提 ...

  9. Android开发之EventBus的简单使用

    参考: 1.http://blog.csdn.net/harvic880925/article/details/40660137 2.http://blog.csdn.net/harvic880925 ...

随机推荐

  1. php群发邮件,用数据库做邮件队列

    重思想,方法自己又写的,不能保证原文的都正确... Tutorial Tutorial – A tutorial for Mail_Queue Mail_Queue usage with a simp ...

  2. linux基础-基本命令的讲解(1-7单元)

    基本命令的讲解 主要内容介绍 1.LINUX操作系统安装及初始化配置(熟悉):2.LINUX操作系统目录组成结构及文件级增删改查操作(重点):3.LINUX操作系统用户.权限管理(重点):4.开源软件 ...

  3. 单源最短路径算法——Dijkstra算法

    #include <stdio.h> #include <stdlib.h> #include <string.h> /* run this program usi ...

  4. ganglia安装简记

    首先需要安装EPEL的源. yum install -y ganglia.x86_64 ganglia-gmetad.x86_64 ganglia-web.x86_64 ganglia-gmond.x ...

  5. MMORPG大型游戏设计与开发(客户端架构 part9 of vegine)

    时间在人们的生活中是多么重要的东西,如果打乱了时间,不知道这个时间会成什么样子.在客户端中,自然也有时间模块,因为不同的时间可能会处理不同的事情,特别是在追求高度自由化的同时,时间也成为了一个很重要的 ...

  6. LED应用照明产品常识关键点

    一.基本关注点 1.  寿命LIFE(影响灯具寿命主要因素:热管理.工作温度.工作电压.电源.LED结温) 2.  色彩COLOR(新的LED材料以及改进的生产工艺使得高亮度LED可以生产覆盖整个可见 ...

  7. hdu-5491 The Next(贪心)

    题目链接: The Next Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. Mecanim分析

    前言 目前我还只是学习到Mecanima的初级阶段,看完了阿赵的日志<Unity3D 4.0新功能:Mecanim动画系统基础教程>,对Mecanima的了解更深入了一些,谢谢他的分享. ...

  9. Android M新的运行时权限开发者需要知道的一切

    android M 的名字官方刚发布不久,最终正式版即将来临!android在不断发展,最近的更新 M 非常不同,一些主要的变化例如运行时权限将有颠覆性影响.惊讶的是android社区鲜有谈论这事儿, ...

  10. 关于IOS免证书真机安装的过程和问题

    由于本人是边工作边转的IOS,所以一直都没怎么使用过免证书安装过程,通常都是公司申请的99美元的账号直接开发.但是前两天有个朋友需要在展会上用的Ipad上安装内网应用,申请一个苹果账号还要审核前后加起 ...