首页 > 代码库 > android千变万化的ViewPager之一

android千变万化的ViewPager之一

相信大家对ViewPager并不陌生,ViewPager就是起一个View切换的作用。今天我来给大家说下,怎么不同地使用ViewPager。

一、原来的Viewpager

  以前,我是这么使用ViewPager,就在一个Activity上设置ViewPager,可以通过手指的滑动来切换不同View,我又在每一份View上加上不同的功能,这样就能实现了,多功能糅合在一个Activity上。

二、现在的ViewPager

  我们平时在使用很多的app应用时,会有一个小细节,就是很多的app在进去时,都有一个缓冲的界面,那个界面上的图片是对这个应用简介,相信很多人都有这个发现。然而在我们开发app时,却不禁疑惑,怎么才能实现那个功能呢?这就要引出我们今天的主角--Viewpager。其实那是使用Viewpager做的一个欢迎界面。所以今天我们来看看使用怎么使用它来切换图片

三、ViewPager的使用

  先来回顾下以前的用法,我以前是这样用的,首先由Activity的布局文件,其次还有很多的布局文件,这些就是Viewpager的子View的布局,在JAVA代码中使用View里面的inflate方法将xml文件转换为View,将转换过来的View加到ArrayList里面去,通过实现PagerAdapter产生一个新的Adapter来加载ArrayList,最后用ViewPager来加载adapter,从而达到了要求。

  现在我们就不同了,直接利用Adapter来加载imageView。

  代码展示

 1 package com.example.android_viewpager; 2  3 import java.util.ArrayList; 4 import java.util.List; 5  6 import android.app.Activity; 7 import android.os.Bundle; 8 import android.support.v4.view.PagerAdapter; 9 import android.support.v4.view.ViewPager;10 import android.view.View;11 import android.view.ViewGroup;12 import android.widget.ImageView;13 import android.widget.ImageView.ScaleType;14 15 public class MainActivity extends Activity {16     private ViewPager viewpager = null;17     private int[] res = new int[] { R.drawable.guide_image1, R.drawable.guide_image2, R.drawable.guide_image3 };18     private List<ImageView>list = new ArrayList<ImageView>();19     protected void onCreate(Bundle savedInstanceState) {20         super.onCreate(savedInstanceState);21         setContentView(R.layout.activity_main);22         viewpager = (ViewPager) findViewById(R.id.viewpager);24         viewpager.setAdapter(new PagerAdapter() {25             @Override26             public Object instantiateItem(ViewGroup container, int position) {27                 ImageView imageview = new ImageView(MainActivity.this);28                 imageview.setImageResource(res[position]);29                 imageview.setScaleType(ScaleType.CENTER_CROP);30                 container.addView(imageview);31                 list.add(imageview);32                 return imageview;33             }34             @Override35             public void destroyItem(ViewGroup container, int position, Object object) {36                 // TODO Auto-generated method stub37                 container.removeView(list.get(position));38             }39             public boolean isViewFromObject(View arg0, Object arg1) {40                 // TODO Auto-generated method stub41                 return arg0 == arg1;42             }43             44             @Override45             public int getCount() {46                 // TODO Auto-generated method stub47                 return res.length;48             }49         });50     }51 }

以上的代码就实现了Viewpager切换多张图片,如果中途出现了卡顿或者抛出了OutOfMemoryError异常,请将图片移到分辨率最高的drawable中,这样就没问题了。

 

android千变万化的ViewPager之一