android左右滑动翻页怎么做类似网页的左右翻页

Android ViewPager多页面滑动切换以及动画效果
一、我们可以使用ViewPager做什么:
1、ViewPager制作APP第一次使用时出现的导航介绍,外加底部圆点的效果,比如微信等很多导航。
2、页卡滑动,加上菜单的效果,一般这些都支持手势也支持底部图标点击。
3、ViewPager+Fragment可以做出多页面滑动效果,让我们的应用程序界面操作起来更加灵活。
先看看几个效果图:
1、使用导航,外加底部圆点的效果,比如新浪。
2、页卡滑动,加上菜单的效果。
3、ViewPager+Fragment可以做出多页面滑动效果。
二、我们现在主要讲讲第二种方式:页卡滑动,加上菜单的效果。
ViewPager。它是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换。
这个附加包是android-support-v4.jar,这是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而viewpager就是其中之一利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等。那如何使用它呢,与LisstView类似,我们也需要一个适配器,他就是PagerAdapter。
vcD4KPHA+Vmlld1BhZ2VytcS5psTcvs3Kx7/J0tTKucrTzby7rLavo6y+zc/xTGFudWNoZXLX89PSu6y2r8TH0fmhozxicj4KPC9wPgo8cD4xoaLO0sPHz8jX9r3nw+ajrDxicj4KPGJyPgq958Pmyei8xrrcvPK1paOstdrSu9DQyP249s23seqjrLXatv7Q0Lavu63NvMaso6y12sj90NDSs7+oxNrI3dW5yr6hozwvcD4KPHA+PHByZSBjbGFzcz0="brush:">
我们要展示三个页卡,所以还需要三个页卡内容的界面设计,这里我们只设置了背景颜色,能起到区别作用即可。
2、代码实现部分
(1) 先来变量的定义
private ViewPager mP//页卡内容
private List listV // Tab页面列表
private ImageV// 动画图片
private TextView t1, t2, t3;// 页卡头标
private int offset = 0;// 动画图片偏移量
private int currIndex = 0;// 当前页卡编号
private int bmpW;// 动画图片宽度
(2) 初始化头标
* 初始化头标
private void InitTextView() {
t1 = (TextView) findViewById(R.id.text1);
t2 = (TextView) findViewById(R.id.text2);
t3 = (TextView) findViewById(R.id.text3);
t1.setOnClickListener(new MyOnClickListener(0));
t2.setOnClickListener(new MyOnClickListener(1));
t3.setOnClickListener(new MyOnClickListener(2));
* 头标点击监听
public class MyOnClickListener implements View.OnClickListener {
private int index = 0;
public MyOnClickListener(int i) {
public void onClick(View v) {
mPager.setCurrentItem(index);
(3) 初始化页卡内容区
* 初始化ViewPager
private void InitViewPager() {
mPager = (ViewPager) findViewById(R.id.vPager);
listViews = new ArrayList();
LayoutInflater mInflater = getLayoutInflater();
listViews.add(mInflater.inflate(R.layout.lay1, null));
listViews.add(mInflater.inflate(R.layout.lay2, null));
listViews.add(mInflater.inflate(R.layout.lay3, null));
mPager.setAdapter(new MyPagerAdapter(listViews));
mPager.setCurrentItem(0);
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
我们将三个页卡界面装入其中,默认显示第一个页卡。这里我们还需要实现一个适配器,这里我们实现了各页卡的装入和卸载
* ViewPager适配器
public class MyPagerAdapter extends PagerAdapter {
public List mListV
public MyPagerAdapter(List mListViews) {
this.mListViews = mListV
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(mListViews.get(arg1));
public void finishUpdate(View arg0) {
public int getCount() {
return mListViews.size();
public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(mListViews.get(arg1), 0);
return mListViews.get(arg1);
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == (arg1);
public void restoreState(Parcelable arg0, ClassLoader arg1) {
public Parcelable saveState() {
public void startUpdate(View arg0) {
(3) 初始化动画
* 初始化动画
private void InitImageView() {
cursor = (ImageView) findViewById(R.id.cursor);
bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.a)
.getWidth();// 获取图片宽度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthP// 获取分辨率宽度
offset = (screenW / 3 - bmpW) / 2;// 计算偏移量
Matrix matrix = new Matrix();
matrix.postTranslate(offset, 0);
cursor.setImageMatrix(matrix);// 设置动画初始位置
实现页卡切换监听
* 页卡切换监听
public class MyOnPageChangeListener implements OnPageChangeListener {
int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量
int two = one * 2;// 页卡1 -> 页卡3 偏移量
public void onPageSelected(int arg0) {
Animation animation =
switch (arg0) {
if (currIndex == 1) {
animation = new TranslateAnimation(one, 0, 0, 0);
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, 0, 0, 0);
if (currIndex == 0) {
animation = new TranslateAnimation(offset, one, 0, 0);
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, one, 0, 0);
if (currIndex == 0) {
animation = new TranslateAnimation(offset, two, 0, 0);
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, two, 0, 0);
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
cursor.startAnimation(animation);
public void onPageScrolled(int arg0, float arg1, int arg2) {
public void onPageScrollStateChanged(int arg0) {怎么禁用滑动翻页、网页内容适应屏幕宽度
1、有些网页内容(比如图片)是滑动查看的,这时的滑动翻页功能就不好用了
2、就是使页面不出现横滚动条
上UC,有快感!
该帖共收到 5 条回复!
发表于 日 18:51
提示: 作者被禁止或删除 内容自动屏蔽
上UC,有快感!
发表于 日 19:21
a510174 发表于 日 18:51
第一个不知道,第二个据说是为了适应新标准导致的,不知啥时候能解决
比较郁闷这样强制启用且不可选择的功能
上UC,有快感!
发表于 日 19:39
RE: 怎么禁用滑动翻页、网页内容适应屏幕宽度
qq 发表于 日 19:21
比较郁闷这样强制启用且不可选择的功能
说强制启用有些过了,浏览器不可能符合所有人的口味,总不能什么都加开关吧。
上UC,有快感!
发表于 日 21:08
本帖最后由 qq 于 日 21:10 编辑
qtlongteng 发表于 日 19:39
说强制启用有些过了,浏览器不可能符合所有人的口味,总不能什么都加开关吧。
对会造成不便的功能让用户可以选择,我认为这个可以有
就如你所说的,“不可能符合所有人的口味”,所以更应该得有能自己选择的,喜欢的启用,不喜欢的禁用,不就皆大欢喜了吗?
上UC,有快感!
发表于 日 21:16
友友,晚上好!
抱歉给友友的使用带来不便了!
客服这边已将友友的问题作为建议上报了,后续也会有工作人员对此作进一步评估和考虑的。感谢友友的反馈O(∩_∩)O
拥有一份美好的心情,如拥有一份诚挚的祝福.愿您健康,愿您快乐,但愿我千万个祝福永远陪伴您左右!
上UC,有快感!源码下载:
注意jdk大于1.8(包括1.8)
参考文章:
本文已收录于以下专栏:
相关文章推荐
Android仿淘宝京东天猫等软件商品详情和图文详情的浏览效果,商品详情拖动到底部继续上滑出来图文详情,图文详情拖动到顶部继续拖动返回查看商品详情、...
一些购物类app的商品详情页面因为要展示的内容较多,一般都把商品的详情分两屏展示,第一屏展示基本信息,接着往上拖动展示更多的商品介绍信息,本文介绍通过自定义控件实现类似淘宝、京东商品详情页面的向上拖动...
需求需要,做一个分数翻页的效果,在网上找了很久,参照一个github的项目,自己写了个demo,现在记录下思路
参考项目地址:/emilsjolander/andr...
如果实现上下或者左右翻页效果,我们借助下这个开源项目:/openaphid/android-flip
Aphid FlipView是一个能够实现Flipboard翻...
京东淘宝有那么一种效果就是,上拉可以查看宝贝的详情,这里我也实现了一个类似的效果,也可以移植到商业项目上:先看看简单的效果图
实现原理其实是利用了ScrollView的滚动和view的tou...
效果图包含的技术点这个知乎的详情页面所包含的几个技术点:1.
support.v7包下的ToolBar的使用
ScrollView实现滑动顶部停靠
监听手势滑动方向来显示和隐藏底部视...
他的最新文章
讲师:李江龙
讲师:司徒正美
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)ListView滚动翻页/滚动加载(类似QQ空间滚动加载页面)
1.滚动加载
listView.setOnScrollListener(new OnScrollListener() {
&&& //添加滚动条滚到最底部,加载余下的元素
&&& @Override
&&& public void onScrollStateChanged(AbsListView view, int scrollState) {
&&&&&&& if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
&&&&&&&&&&& loadRemnantListItem();
&&& @Override
&&& public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {}
listView.setOnItemSelectedListener(new OnItemSelectedListener() {
&&& //按键选择List中的item,焦点落在最下面的view上加载余下的item
&&& @Override
&&& public void onItemSelected(AdapterView&?& parent, View view, int position, long id) {
&&&&&&& if(footerView == view) {
&&&&&&&&&&& loadRemnantListItem();
&&&&&&&&&&& listView.setSelection(position - 1);
&&& @Override
&&& public void onNothingSelected(AdapterView&?& parent) {}
private void loadRemnantListItem() {//滚到加载余下的数据
&&& //动态的改变listAdapter.getCount()的返回值
&&& //使用Handler调用listAdapter.notifyDataSetChanged();更新数据
2.滚动翻页
listView监听器代码相同
private void loadRemnantListItem() {//滚到加载余下的数据
&&& //重新listView.setAdapter(newsAdapter);
&&& //使用Handler调用listAdapter.notifyDataSetChanged();更新数据
注:在listView最下面可以试用listView.addFooterView(footerView, null, true);来显示&加载中...&等的字样来美化用户体验,在loadRemnantListItem()方法中动态控制&加载中...&的显示和不显示
摘自 与时俱进相关文章推荐:
listView.setOnScrollListener(newOnScrollListener(){&&&&//添加滚动条滚到最底部,加载余下的元素&&&&@Override&&&&publicvoidonScrollStateChanged(AbsListViewview,intscrollState){&&&&&&&&if(scrollState==OnScrollListener.SCROLL_STATE_IDLE){&&&&&&&&&&&&loadRemnantListItem();&&&&&&&&}&&&& ...
其他文章推荐
艺&&人:MINA唱片名称:约会发行公司:星文发行时间:kbps专辑介绍&&&&Mina(米拿)原名沈敏雅,今年24岁,是02年世界杯期间代表韩国的"MissWorldcup"(世界杯小姐),世界杯结束后尽管受到周围不少人对她的关注,但是并没有一下子成为耀眼的明星。然而她一直以 ......
1.HPMC/ServiceGuard背景知识  HPMC/ServiceGuard服务器应用软件可以帮助你使用800系列的HP9000服务器建立一个高可靠性的集群服务器系统。一个高可靠的系统是指即使计算机系统出现硬件和软件的故障,运行在该系统上的服务仍然可以继续使用,在一个环节(可能是一个系 ......
工作地点:北京有意者请发简历至:,或加为好友咨询Servicemanagement–servicereadinessResponsibilities:sibilities:RepresentServiceDeliveryonnewandsustainingserviceproducts.&#61548rovidecustomersneedsintotheservicesoffering,providesegmentsuppor ......
在vi中按u可以撤销一次操作,那想撤销多次操作要怎么做啊?先谢了。...
到/netres/projects/virtualwifi/下载VirtualWiFi.FollowingaretheprerequisitesforusingVirtualWiFi:Youshouldhaveadministrativerightstoinstalldriversandservicesonyourmachine.CopytheVirtualWiFibinaries.Thedirectorywillhavethefo ......
     在新一代操作系统WindowsVista面市半年后,微软昨天宣布,对中国市场上家庭用零售全包装简体中文Vista产品的供货价进行大幅优惠,最低价调至499元。      从昨天起,中文Vista家庭普通版从1521元调整至499 ......
http://211.69.22.74/soft/bcgj/[Visual.Studio..net.2005.%BC%F2%CC%E5%D6%D0%CE%C4%B0%E6].rar...
&&&WindowsVista将是微软所开发的有史以来包含最为全面的操作系统,3DAero玻璃图象化所给予人们的视觉享受也是非常好的体验。然而,功能的增加与图象的改进都冲价格而去,这个价格通常就是对高端硬件的要求。如果你计划将WindowsVista的所有好处收入囊中 ......
ADMU3011E:服务器已启动,但是初始化失败。startServer.log、SystemOut.log(或者zOS中的作业日志)以及d:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1下的其他日志文件可能包含故障信息。ADMU7704E:在尝试启动与服务器相关联的Windows服务时失败:server1 ......
virtualbox由德国的Innotek公司开发,名为InnotekVirtualBox;日,Innotek公司被Sun公司以股票的形式收购,更名为SunxVMVirtualBox;再到日,欧盟终于同意Oracle收购Sun,因此VirtualBox又更名为OracleVMVirtualBox;去年才开始使用VirtualBox,它具 ......
文章推荐:
盛拓传媒:
友情链接:
特别鸣谢:
北京皓辰网域网络信息技术有限公司. 版权所有
北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证:编号(京)字第1149号
CHINAUNIX推荐文章解答你所有技术难题}

我要回帖

更多关于 android 翻页动画效果 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信