Android开发之ViewPager的简单使用

时间:2022-08-28 22:27:30

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

第一步:点击+号

Android开发之ViewPager的简单使用

第二步:选择第一个Library

Android开发之ViewPager的简单使用

第三步:添加这个包:

Android开发之ViewPager的简单使用

然后点击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&plus;ActionBar&plus;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&colon; java&period;lang&period;ClassNotFoundException&colon; Didn&&num;39&semi;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. 人生苦短,我用python——当我在玩python的时候我玩些什么

    文章背景 家里的第一台电脑是在2006年夏天买的,10年上大学之后基本上就没人用,过没两年就当二手卖给一个熟人. 弟弟小我10岁,今年刚上初一.他在我毕业前半年就整天用妈妈的手机发短信给我,问我什么时 ...

  2. StarkSoft题库管理系统&lpar;二&rpar;--生成word格式试卷

    一.功能介绍    1.自定义试题库管理系统目录.难易程度,题型,知识库等.    2.试题录入.    3.强大的试题编辑功能,并与通常应用编辑工具有共通.    4.灵活的试卷构造功能,用户可自定 ...

  3. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

    一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的   git的起源 作者是Linux之父:Linus Bened ...

  4. 【转】Android 驱动开发系列四

    原文网址:http://www.2cto.com/kf/201304/202040.html 时隔多日,终于都抽出时间来写blog了.废话不多说,接着上一篇,这里将介绍如何编写HAL层(硬件抽象层)对 ...

  5. PHP学习笔记十一【数组】

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/h ...

  6. R&colon; 修改镜像、bioconductor安装及go基因富集分析

    1.安装bioconductor及go分析涉及的相关包 source("http://bioconductor.org/biocLite.R") options(BioC_mirr ...

  7. 原生JS实现jquery的ready

    function ready(fn){ if(document.addEventListener){ //标准浏览器 document.addEventListener('DOMContentLoad ...

  8. postgresql&colon;array &amp&semi; foreach

    --数组: SELECT (ARRAY['{101, 111, 121}', '{201, 211, 221}'])[1]::text[]; SELECT (ARRAY['{101, 111, 121 ...

  9. win7&plus;opencv3&period;0&period;0&plus;vs2010 安装及配置

    最近看<学习opencv>,想要跑人脸识别的例子,于是先配环境吧. 1.  opencv下载: 具体下载地址,http://opencv.org/,官网太慢,百度网盘的资源链接:http: ...

  10. &lbrack;调试&rsqb;VS2013调试时提示&OpenCurlyDoubleQuote;运行时当前拒绝计算表达式的值”

    VS2013 下单元测试调试时遇到的问题,以前倒从未遇到过. 中文关键字在百度和谷歌中搜索均无果. Google 下搜索 “The runtime has refused to evaluate th ...