首页 > 代码库 > 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之一