Android之ViewPager

API文档:

ViewPager的功能就是可以使视图滑动(与ViewFlipper的自动滑动不同的是它要手动滑动),就像Lanucher左右滑动那样。

所以我们可以用它来做一个app引导界面。

效果图如下:

实现步骤:

1、主界面布局中创建VIewPager。

2、加载各个界面的View。

3、设置PagerAdapter.

注意:

当你实现一个PagerAdapter,你必须至少覆盖以下方法:

实现代码:

MainActivity:

public class MainActivity extends Activity {

	private ViewPager mviewPager;
	private View view1, view2, view3;
	private List<View> viewList;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.viewpager);
		initView();

		PagerAdapter mpagerAdapter = new PagerAdapter() {  

	        @Override
	        public boolean isViewFromObject(View arg0, Object arg1) {  

	            return arg0 == arg1;
	        }  

	        @Override
	        public int getCount() {  

	            return viewList.size();
	        }  

	        @Override
	        public void destroyItem(ViewGroup container, int position,
	                Object object) {
	            container.removeView(viewList.get(position));  

	        }  

	        @Override
	        public int getItemPosition(Object object) {  

	            return super.getItemPosition(object);
	        }  

	        @Override
	        public Object instantiateItem(ViewGroup container, int position) {
	            container.addView(viewList.get(position));  

	            return viewList.get(position);
	        }  

	    };
		mviewPager.setAdapter(mpagerAdapter);
	}

	void initView() {
		mviewPager = (ViewPager) findViewById(R.id.viewPager);
		viewList = new ArrayList<View>();

		LayoutInflater layoutInflate = getLayoutInflater().from(this);

		view1 = layoutInflate.inflate(R.layout.layout1, null);
		view2 = layoutInflate.inflate(R.layout.layout2, null);
		view3 = layoutInflate.inflate(R.layout.layout3, null);

		viewList.add(view1);
		viewList.add(view2);
		viewList.add(view3);

pagerAdapter);
	}

2、主布局:main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" >

    </android.support.v4.view.ViewPager>
</LinearLayout>

3、各个被加载的子布局,这里只给出一个,另外两个布局代码一样只是名字不同。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/iamge"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/a" />

</LinearLayout>

上面是一个入门级的例子,接下来几篇会讲一些更加深入有技术性的例子。

时间: 2024-11-07 06:48:37

Android之ViewPager的相关文章

Android:ViewPager扩展详解——带有导航的ViewPagerIndicator(附带图片缓存,异步加载图片)

大家都用过viewpager了, github上有对viewpager进行扩展,导航风格更加丰富,这个开源项目是ViewPagerIndicator,很好用,但是例子比较简单,实际用起来要进行很多扩展,比如在fragment里进行图片缓存和图片异步加载. 下面是ViewPagerIndicator源码运行后的效果,大家也都看过了,我多此一举截几张图: 下载源码请点击这里 ===========================================华丽的分割线==============

Android的ViewPager的初步使用

之前想实现页面的滑动效果,在网上搜了下,挺多的关于TabHost的使用的例子,然后就使用了TabHost,但是效果非常一般(Maybe我不会用).然后同学介绍使用ViewPager,就上网问百老师,挺多例子挺详细的,亲自试了下,做出了我想要的效果,现在就总结下: 1.建立一个主的Activity,继承FragmentActivity,再创建一个Adapter类,继承FragmentPagerAdapter(继承其他Adapter没有测试过),使用的方式和ListView的Adapter差不多.然

Android 自定义 ViewPager 打造千变万化的图片切换效果

Android 自定义 ViewPager 打造千变万化的图片切换效果 标签: Android自定义ViewPagerJazzyViewPager 目录(?)[+] 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38026503 记 得第一次见到ViewPager这个控件,瞬间爱不释手,做东西的主界面通通ViewPager,以及图片切换也抛弃了ImageSwitch之类的,开 始让ViewPager来做.时间长了,ViewPa

【转】android 自定义ViewPager,修改原动画

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38026503 记 得第一次见到ViewPager这个控件,瞬间爱不释手,做东西的主界面通通ViewPager,以及图片切换也抛弃了ImageSwitch之类的,开 始让ViewPager来做.时间长了,ViewPager的切换效果觉得枯燥,形成了审美疲劳~~我们需要改变,今天教大家如何改变ViewPager 切换时的效果,实现个性化的图片切换~~ 看一下这样效果的图片切换: 是

Android重写ViewPager修改滑动灵敏度

使用ViewPager作为一个页面进行切换,里面可以存放很多View,但有时在操作View时不小心滑动一下就有可能跳到下一页,这并不是我们想要的,这里就需要重写ViewPager修改它的滑动条件 效果图 程序目录结构 BTViewPager.java package com.example.viewpagerdemo; import android.content.Context; import android.support.v4.view.ViewPager; import android.

Android中ViewPager+Fragment懒加载问题解决方案

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878 本文出自[DylanAndroid的博客] Android中ViewPager+Fragment懒加载问题解决方案 在Android中我们经常会用到ViewPager+Fragment组合.然而,有一个很让人头疼的问题就是,我们去加载数据的时候 由于ViewPager的内部机制所限制,所以它会默认至少预加载一个.这让人很郁闷,所以,我就想到要封装一个Fragme

Android listview viewpager解决冲突 滑动

Android listview viewpager 滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决 在listview 上使用 addHeaderView 在第一栏添加 viewpager 当做header 如: 当触发 滑动事件 的时候容易引起 滑动冲突    (比如斜着滑动viewpager  的时候 listview会跳动) 特别是在  下拉刷新或者上拉加载 的时候 , 组件可能会传递到viewpager当中 查阅了很多的帖子  发现修改起来都非常麻烦

android 重写 viewpager

重写viewpager在viewpager里调用getChildAt(position)的时候发现有问题 很多获取的view都为null 查资料发现 是因为我在instantiateitem的时候调用的是((ViewPager) container).addView(view); 应该写成((ViewPager) container).addView(view, position); 运行之后报错,index越界 又查是因为viewpager里面默认可存的数量是有限的 ,应该是viewpager

Android利用ViewPager实现滑动广告板

•android-support-v4.jar,这是谷歌官方 给我们提供的一个兼容低版本Android设备的软件包,里面包囊了只有在Android3.0以上可以使用的api.而ViewPager就是其中之 一,利用它我们可以做很多事情,从最简单的导航,到页面切换菜单等等. •ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样. •本Demo向大家演示ViewPager的使用,并在用户未滑动View时,每隔5s钟自动切换到下一个View(循环切换),而当用户有Touch到

Android 关于ViewPager结合碎片Fragment的简单使用

一.      首先在xml添加ViewPager控件 我们希望每个viewpager显示一张图片 新建一个pager_item.xml的文件 代码如下 二.分析   一个ViewPager需要设置一个适配器,这个适配器可以继承FragmentStatePagerAdapter, 适配器同样需要设置数据,这个为适配器添加的是碎片.碎片可以继承Fragment,设置视图,监听等,具体图如下: 三.    上图可知,我们需要新建一个碎片先. 注意,这个继承的Fragment需要是在包android.