展会信息港展会大全

Android开发学习使用ViewPager打造Gallery
来源:互联网   发布日期:2015-10-03 10:43:56   浏览:1404次  

导读: 通过我们前面的学习,我们知道ViewPager是可以做出近乎完美的滑动体验,回顾整个Android,我们发现Gallery具备同样的特点,于是我们大胆地猜想,Gall...

通过我们前面的学习,我们知道ViewPager是可以做出近乎完美的滑动体验,回顾整个Android,我们发现Gallery具备同样的特点,于是我们大胆地猜想,Gallery是否和ViewPager之间有些关联呢?两者在功能上的类似和重叠,总会让我们对此充满好奇,我们开始思考:如果不借助Gallery,我们能否做出像Gallery一样的效果呢?答案是肯定的。那么,我们今天就来一起学习自己动手打造一个Gallery吧。

首先讲述下原理,和前面一样,当我们继承PagerAdapter这个类时,一般会传入一个View类型的数组,这样在ViewPager绑定了这个适配器类时,就能将这个View数组里的View对象显示出来。在这里,View可以是一个布局,也可以是某个控件,甚至是任何继承自View的控件。所以,我们同样可以传入一个ImageView作为这个View对象埃好,明白了原理,我们就来开始今天的学习吧!

首先来看布局代码,ViewPager是必不可少的一个控件。

接下来是那个百用不厌的ViewPagerAdapter类,继承自PagerAdapter:

package com.Android.ViewPager4Gallery;

import java.util.ArrayList;

import android.support.v4.view.PagerAdapter;

import android.support.v4.view.ViewPager;

import android.view.View;

public class ViewPagerAdapter extends PagerAdapter {

private ArrayList Views;//存放View的ArrayList

/*

* ViewAdapter构造函数

* @author:Robin

*/

public ViewPagerAdapter(ArrayList Views)

{

this.Views=Views;

}

/*

* 返回View的个数

*/

@Override

public int getCount()

{

if(Views!=null)

{

return Views.size();

}

return 0;

}

/*

* 销毁View

*/

@Override

public void destroyItem(View container, int position, Object object)

{

((ViewPager)container).removeView(Views.get(position));

}

/*

* 初始化

*/

@Override

public Object instantiateItem(View container, int position)

{

((ViewPager)container).addView(Views.get(position),0);

return Views.get(position);

}

/*

* 判断View是否来自Object

*/

@Override

public boolean isViewFromObject(View view, Object object)

{

return (view==object);

}

}

然后就是核心的代码部分了,代码已经做好了注释,写得很明白,不再赘述了

package com.Android.ViewPager4Gallery;

import java.util.ArrayList;

import android.os.Bundle;

import android.app.Activity;

import android.support.v4.view.ViewPager;

import android.support.v4.view.ViewPager.OnPageChangeListener;

import android.view.Menu;

import android.view.View;

import android.view.Window;

import android.widget.ImageView;

import android.widget.Toast;

public class MainActivity extends Activity implements OnPageChangeListener {

//图像资源

private int[] Resources=new int[]{R.drawable.image1,R.drawable.image2,R.drawable.image3,

R.drawable.image5,R.drawable.image5,R.drawable.image6,R.drawable.image7,R.drawable.image10,

R.drawable.image11,R.drawable.image13,R.drawable.image16,R.drawable.image17,R.drawable.image18,

R.drawable.image19,R.drawable.image21,R.drawable.image22,R.drawable.image23,R.drawable.image24,

R.drawable.image25,R.drawable.image27,R.drawable.image28,R.drawable.image29};

//适配器

private ViewPagerAdapter mAdapter;

//View数组

private ArrayList Views;

//ViewPager

private ViewPager mViewPager;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

//初始化Views

Views=new ArrayList(Resources.length);

for(int i=0;i

最终运行效果如下:

今天的内容就是这样了,快考试了,能写博客的时间不多咯!呵呵

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港