![【移动应用开发技术】怎么在Android中使用ViewPager实现左右拖动效果_第1页](http://file4.renrendoc.com/view/f5e74228fc24d8a07785bcb6b7f3cc6e/f5e74228fc24d8a07785bcb6b7f3cc6e1.gif)
![【移动应用开发技术】怎么在Android中使用ViewPager实现左右拖动效果_第2页](http://file4.renrendoc.com/view/f5e74228fc24d8a07785bcb6b7f3cc6e/f5e74228fc24d8a07785bcb6b7f3cc6e2.gif)
![【移动应用开发技术】怎么在Android中使用ViewPager实现左右拖动效果_第3页](http://file4.renrendoc.com/view/f5e74228fc24d8a07785bcb6b7f3cc6e/f5e74228fc24d8a07785bcb6b7f3cc6e3.gif)
![【移动应用开发技术】怎么在Android中使用ViewPager实现左右拖动效果_第4页](http://file4.renrendoc.com/view/f5e74228fc24d8a07785bcb6b7f3cc6e/f5e74228fc24d8a07785bcb6b7f3cc6e4.gif)
![【移动应用开发技术】怎么在Android中使用ViewPager实现左右拖动效果_第5页](http://file4.renrendoc.com/view/f5e74228fc24d8a07785bcb6b7f3cc6e/f5e74228fc24d8a07785bcb6b7f3cc6e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】怎么在Android中使用ViewPager实现左右拖动效果
今天就跟大家聊聊有关怎么在Android中使用ViewPager实现左右拖动效果,可能很多人都不太了解,为了让大家更加了解,在下给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Demo的结构图:注:ViewPager类是实现左右两个屏幕平滑地切换的一个类,是由Google提供的,使用ViewPager首先需要引入android-support-v4.jar这个jar包。其中工程项目中的libs文件夹下存放着android-support-v4.jar这个jar包。drawable文件夹下包含有图片资源文件。以下是工程中各个文件的源码:main.xml源码:<?xml
version="1.0"
encoding="utf-8"?>
<FrameLayout
xmlns:android="/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<android.support.v4.view.ViewPager
android:id="@+id/guidePages"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/viewGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="30dp"
android:gravity="center_horizontal"
android:orientation="horizontal"
>
</LinearLayout>
</RelativeLayout>
</FrameLayout>item01.xml源码:<?xml
version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/feature_guide_0"
>
</ImageView>
</LinearLayout>其中item02.xml,item03.xml,item04.xml布局文件的源码和item01.xml布局文件一样,只是ImageView中的android:background属性的背景图片不同而已。GuideViewDemoActivity.java源码:package
com.andyidea.guidedemo;
import
java.util.ArrayList;
import
android.app.Activity;
import
android.os.Bundle;
import
android.os.Parcelable;
import
android.support.v4.view.PagerAdapter;
import
android.support.v4.view.ViewPager;
import
android.support.v4.view.ViewPager.OnPageChangeListener;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.view.ViewGroup;
import
android.view.ViewGroup.LayoutParams;
import
android.view.Window;
import
android.widget.ImageView;
public
class
GuideViewDemoActivity
extends
Activity
{
private
ViewPager
viewPager;
private
ArrayList<View>
pageViews;
private
ViewGroup
main,
group;
private
ImageView
imageView;
private
ImageView[]
imageViews;
/**
Called
when
the
activity
is
first
created.
*/
@Override
public
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
LayoutInflater
inflater
=
getLayoutInflater();
pageViews
=
new
ArrayList<View>();
pageViews.add(inflater.inflate(R.layout.item01,
null));
pageViews.add(inflater.inflate(R.layout.item02,
null));
pageViews.add(inflater.inflate(R.layout.item03,
null));
pageViews.add(inflater.inflate(R.layout.item04,
null));
imageViews
=
new
ImageView[pageViews.size()];
main
=
(ViewGroup)inflater.inflate(R.layout.main,
null);
//
group是R.layou.main中的负责包裹小圆点的LinearLayout.
group
=
(ViewGroup)main.findViewById(R.id.viewGroup);
viewPager
=
(ViewPager)main.findViewById(R.id.guidePages);
for
(int
i
=
0;
i
<
pageViews.size();
i++)
{
imageView
=
new
ImageView(GuideViewDemoActivity.this);
imageView.setLayoutParams(new
LayoutParams(20,20));
imageView.setPadding(20,
0,
20,
0);
imageViews[i]
=
imageView;
if
(i
==
0)
{
//默认选中第一张图片
imageViews[i].setBackgroundResource(R.drawable.page_indicator_focused);
}
else
{
imageViews[i].setBackgroundResource(R.drawable.page_indicator);
}
group.addView(imageViews[i]);
}
setContentView(main);
viewPager.setAdapter(new
GuidePageAdapter());
viewPager.setOnPageChangeListener(new
GuidePageChangeListener());
}
/**
指引页面Adapter
*/
class
GuidePageAdapter
extends
PagerAdapter
{
@Override
public
int
getCount()
{
return
pageViews.size();
}
@Override
public
boolean
isViewFromObject(View
arg0,
Object
arg1)
{
return
arg0
==
arg1;
}
@Override
public
int
getItemPosition(Object
object)
{
//
TODO
Auto-generated
method
stub
return
super.getItemPosition(object);
}
@Override
public
void
destroyItem(View
arg0,
int
arg1,
Object
arg2)
{
//
TODO
Auto-generated
method
stub
((ViewPager)
arg0).removeView(pageViews.get(arg1));
}
@Override
public
Object
instantiateItem(View
arg0,
int
arg1)
{
//
TODO
Auto-generated
method
stub
((ViewPager)
arg0).addView(pageViews.get(arg1));
return
pageViews.get(arg1);
}
@Override
public
void
restoreState(Parcelable
arg0,
ClassLoader
arg1)
{
//
TODO
Auto-generated
method
stub
}
@Override
public
Parcelable
saveState()
{
//
TODO
Auto-generated
method
stub
return
null;
}
@Override
public
void
startUpdate(View
arg0)
{
//
TODO
Auto-generated
method
stub
}
@Override
public
void
finishUpdate(View
arg0)
{
//
TODO
Auto-generated
method
stub
}
}
/**
指引页面改监听器
*/
class
GuidePageChangeListener
implements
OnPageChangeListener
{
@Override
public
void
onPageScrollStateChanged(int
arg0)
{
//
TODO
Auto-generated
method
stub
}
@Override
public
void
onPageScrolled(int
arg0,
float
arg1,
int
arg2)
{
//
TODO
Auto-generated
method
stub
}
@Override
public
void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年鼠抗病毒抗原单克隆抗体项目提案报告模板
- 2025年双边贸易合作策划购销协议书
- 2025年企业搬迁安置协议样本
- 2025年萃取设备项目提案报告模板
- 2025年金属基耐磨复合材料项目规划申请报告模稿
- 2025年企业调整策划与和解合同
- 2025年度砖厂用地租赁合同
- 2025年企业绩效管理改进协议
- 2025年交通事故责任补偿合同样本
- 2025年居家康复护理策划协议标准文本
- pcs-9611d-x说明书国内中文标准版
- GB/T 1634.1-2004塑料负荷变形温度的测定第1部分:通用试验方法
- 数据结构英文教学课件:chapter4 Stacks and Queues
- 无人机航拍技术理论考核试题题库及答案
- T∕CMATB 9002-2021 儿童肉类制品通用要求
- 工序劳务分包管理课件
- 暖通空调(陆亚俊编)课件
- 工艺评审报告
- 自动化腹膜透析(APD)的临床应用课件
- 中国滑雪运动安全规范
- DG-TJ 08-2343-2020 大型物流建筑消防设计标准
评论
0/150
提交评论