码迷,mamicode.com
首页 > 移动开发 > 详细

android千变万化的ViewPager之一

时间:2016-09-23 23:20:39      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

相信大家对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中,这样就没问题了。

 

android千变万化的ViewPager之一

标签:

原文地址:http://www.cnblogs.com/Stay-Hungry-Stay-Foolish/p/5901762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!