背景图片跟随手势滑动的ViewPager
来源:互联网 发布:内蒙古大数据 编辑:程序博客网 时间:2024/06/09 03:08
背景图片跟随手势滑动的ViewPager,可各方向滑动或点击切换页面。
效果参考 ANA Portuguese Airports(google play地址)
效果图
GitHub代码下载
组成
项目由一个Activity和五个fragment组成。
主要代码介绍
1、横向背景移动的ViewPager中,重写dispatchDraw方法:
@Overrideprotected void dispatchDraw(Canvas canvas) { if (this.bg != null) { int width = this.bg.getWidth(); int height = this.bg.getHeight(); int count = getAdapter().getCount(); int x = getScrollX(); //子View中背景图片需要显示的宽度,放大背景图或缩小背景 图。 int n = height * getWidth() / getHeight(); //(width - n) / (count - 1)表示除去显示第一个ViewPager页面用去的背景宽度,剩余的ViewPager需要显示的背景图片的宽度。 //getWidth()等于ViewPager一个页面的宽度,即手机屏幕宽度。在该计算中可以理解为滑动一个ViewPager页面需要滑动的像素值。 //((width - n) / (count - 1)) / getWidth()也就表示ViewPager滑动一个像素时,背景图片滑动的宽度。 //x * ((width - n) / (count - 1)) / getWidth()也就表示ViewPager滑动x个像素时,背景图片滑动的宽度。 //背景图片滑动的宽度的宽度可以理解为背景图片滑动到达的位置。 int w = (x+getWidth()) * ((width - n) / (count - 1)) / getWidth(); canvas.drawBitmap(this.bg, new Rect(w, 0, n + w, height), new Rect(x, 0, x + getWidth(), getHeight()), this.b); } super.dispatchDraw(canvas);}
2、IScrollListener中控制是否可以方向滚动
void canScrollView(boolean isCanScroll);
3、添加FixedSpeedScroller类(继承Scroller),控制ViewPager调用setCurrentItem方法时的滚动速度。
private int mDuration = 800; // 默认为800ms@Override public void startScroll(int startX, int startY, int dx, int dy, int duration) { super.startScroll(startX, startY, dx, dy, mDuration); } @Override public void startScroll(int startX, int startY, int dx, int dy) { super.startScroll(startX, startY, dx, dy, mDuration); }
最后
下载代码请移步GitHub,如果对您有帮助请Star,有问题随时联系我,谢谢.
关于我
QQ交流群:496946393
邮箱: nh_zhe@163.com
简书
个人博客
0 0
- 背景图片跟随手势滑动的ViewPager
- ViewPager滑动跟随的指示器
- ViewPager的指示标跟随ViewPager滑动而滑动
- ViewPager手势滑动禁用
- 跟随滑动ViewPager指示器(小圆点跟随滑动效果)
- android按钮跟随手势滑动改变位置
- android控件跟随手势滑动改变位置
- 安卓app页面跟随手指滑动而切换 ViewPager的使用 ViewPager+Fragment
- android之viewpager进度条跟随页面滑动
- android头部导航跟随viewpager滑动
- scrollview中包含viewpager导致viewpager左右滑动手势不灵敏的解决方案
- ViewPager添加指标,满足页面滑动,指标跟随滑动
- 模仿新闻头条,上面滑动,下面ViewPager跟随滑动
- ViewPager禁止手势滑动、解决和子View的滑动冲突
- android ViewPager多页面手势滑动
- Android 实现手势滑动界面(ViewPager)
- ViewPager+Handler实现轮播加手势滑动
- ViewPager的小红点跟随效果
- 愿时光温柔相待
- BeanFactory 与 ApplicationContext的不同
- Xcode生成API文档
- c#获取console类进程程序的显示数值
- Textview换行显示—换行符
- 背景图片跟随手势滑动的ViewPager
- Xshell连接centos操作
- iOS:Objective-C字面量
- 【bzoj4538】【HNOI2016】【网络】【树链剖分+线段树套堆】
- Struts2基础
- zepto商城顶部分类导航下拉菜单代码
- mysql语句
- 堆排序 图解 (网上摘抄)(方便查询)
- 如何修改element.style样式