Android开发之ViewPager的简单使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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时报错。

 

以上是关于Android开发之ViewPager的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

Android之ViewPager的简单使用

android开发之viewpager and Fragment

Android开发之漫漫长途 Fragment番外篇——TabLayout+ViewPager+Fragment

Android移动应用开发之ViewPager

Android移动应用开发之ViewPager

Android开发——打造简单的Viewpager指示器(小圆点指示器)