标签:
相信大家对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 @Override 26 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 @Override 35 public void destroyItem(ViewGroup container, int position, Object object) { 36 // TODO Auto-generated method stub 37 container.removeView(list.get(position)); 38 } 39 public boolean isViewFromObject(View arg0, Object arg1) { 40 // TODO Auto-generated method stub 41 return arg0 == arg1; 42 } 43 44 @Override 45 public int getCount() { 46 // TODO Auto-generated method stub 47 return res.length; 48 } 49 }); 50 } 51 }
以上的代码就实现了Viewpager切换多张图片,如果中途出现了卡顿或者抛出了OutOfMemoryError异常,请将图片移到分辨率最高的drawable中,这样就没问题了。
标签:
原文地址:http://www.cnblogs.com/Stay-Hungry-Stay-Foolish/p/5901762.html