android千变万化的ViewPager之一

【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 { 16private ViewPager viewpager = null; 17private int[] res = new int[] { R.drawable.guide_image1, R.drawable.guide_image2, R.drawable.guide_image3 }; 18private List< ImageView> list = new ArrayList< ImageView> (); 19protected void onCreate(Bundle savedInstanceState) { 20super.onCreate(savedInstanceState); 21setContentView(R.layout.activity_main); 22viewpager = (ViewPager) findViewById(R.id.viewpager); 24viewpager.setAdapter(new PagerAdapter() { 25@Override 26public Object instantiateItem(ViewGroup container, int position) { 27ImageView imageview = new ImageView(MainActivity.this); 28imageview.setImageResource(res[position]); 29imageview.setScaleType(ScaleType.CENTER_CROP); 30container.addView(imageview); 31list.add(imageview); 32return imageview; 33} 34@Override 35public void destroyItem(ViewGroup container, int position, Object object) { 36// TODO Auto-generated method stub 37container.removeView(list.get(position)); 38} 39public boolean isViewFromObject(View arg0, Object arg1) { 40// TODO Auto-generated method stub 41return arg0 == arg1; 42} 43 44@Override 45public int getCount() { 46// TODO Auto-generated method stub 47return res.length; 48} 49}); 50} 51 }

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

    推荐阅读