zoukankan      html  css  js  c++  java
  • Android开发之ViewPager的简单使用

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

    第一步:点击+号

    第二步:选择第一个Library

    第三步:添加这个包:

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

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

    1 <android.support.v4.view.ViewPager
    2         android:id="@+id/ViewPager"
    3         android:layout_width="match_parent"
    4         android:layout_height="match_parent"
    5         />

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

    然后是代码:

     1 public class MainActivity extends Activity {
     2 
     3     private ViewPager viewPager;
     4     private ArrayList<ImageView> mImageViewList;
     5     private int[] mImagerIds = new int[]{R.drawable.guide_1,R.drawable.guide_2,R.drawable.guide_3};
     6 
     7     @Override
     8     protected void onCreate(Bundle savedInstanceState) {
     9         super.onCreate(savedInstanceState);
    10         setContentView(R.layout.activity_main);
    11 
    12         viewPager = (ViewPager) findViewById(R.id.ViewPager);
    13         initData();
    14         ViewPagerAdapter adapter = new ViewPagerAdapter();
    15         viewPager.setAdapter(adapter);
    16     }
    17 
    18 
    19 
    20     public void initData(){
    21         mImageViewList = new ArrayList<>();
    22         //把所有的ImageView都添加都mImageViewList的集合中
    23         for (int i=0; i<mImagerIds.length; i++){
    24             //新建一个ImgeView将图片资源添加到ImageView中
    25             ImageView imageView = new ImageView(this);
    26             imageView.setBackgroundResource(mImagerIds[i]);
    27             //将ImageView添加到mImageViewList的集合中
    28             mImageViewList.add(imageView);
    29         }
    30 
    31     }
    32 
    33     class ViewPagerAdapter extends PagerAdapter {
    34 
    35         //item的个数
    36         @Override
    37         public int getCount() {
    38             return mImageViewList.size();
    39         }
    40 
    41         @Override
    42         public boolean isViewFromObject(View view, Object object) {
    43             return view==object;
    44         }
    45 
    46         //初始化item布局
    47         @Override
    48         public Object instantiateItem(ViewGroup container, int position) {
    49             ImageView imageView = mImageViewList.get(position);
    50             container.addView(imageView);//将imageView添加进来
    51             return imageView;//将imageView返回
    52         }
    53 
    54         //销毁Item
    55         @Override
    56         public void destroyItem(ViewGroup container, int position, Object object) {
    57             //super.destroyItem(container, position, object);//如果用这个一出Item的话滑到最后一个会报错
    58             container.removeView((View)object);
    59         }
    60     }
    61 }

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

    GitHub:https://github.com/godfunc
    博客园:http://www.cnblogs.com/godfunc
    Copyright ©2019 Godfunc
  • 相关阅读:
    Oracle/PLSQL: Creating Functions
    Oracle调优总结(经典实践 重要)
    Lua 简单的IO交互 和迷宫代码
    Lua基础 函数(一)
    Stateless Iterators
    Lua print on the same line
    What is the Best Programming Language to Learn in 2014?
    Using command-line Subversion to access project source files
    Lua 代码编写技巧
    lua语言入门之Sublime Text设置lua的Build System
  • 原文地址:https://www.cnblogs.com/Godfunc/p/6080588.html
Copyright © 2011-2022 走看看