viewpager嵌套开源组件gesture-imageview实现图片浏览和缩放
来源:互联网 发布:编程的机器人 编辑:程序博客网 时间:2024/05/07 14:34
gesture-imageview的github地址。
下载后将包com.polites.android放入src中,如图:
直接可以在代码中构建gestureImageView的类实例并使用,在viewPager的adapter中重写:
- @Override
- public Object instantiateItem(ViewGroup container, int position) {
- GestureImageView iv = new GestureImageView(mContext);
- iv.setImageBitmap(your-bitmap-here);
- ((ViewPager) container).addView(iv, 0);
- return iv;
- }
可以说,当这个imageView单独使用时,它的功能是挺完美的。
但当前版本的imageview被外层滑动组件嵌套时会有问题,不能直接嵌套使用,当左右滑动时,会默认应用viewpager的滑动(即使你并不想滑动viewpager,只是想拖动放大了之后的图片而已)。viewPager的应用详见issue#30
找到com.polites.android.GestureImageViewTouchListener,我们要做的,就是判断当前imageview是否是被放大的状态,如果当前imageview被放大了,就禁止父组件消费触摸事件。
新加变量:
- private boolean zoomed;
- public boolean isZoomed(){
- return zoomed;
- }
- public void setZoomed(boolean zoomed){
- this.zoomed = zoomed;
- }
新加一句代码,在每次改变lastScale之后,判断是否恢复到原始或者进行了缩放:
(你可以在文件中搜索lastScale以找到它)
- lastScale = currentScale;
- /**
- * recalculate zoomed after lastScale changed.
- */
- zoomed = !(Math.abs(lastScale - startingScale) < 0.01);
在onTouch方法的开头,补充:
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- if (isZoomed())
- image.getParent().requestDisallowInterceptTouchEvent(true);
修改之后,当且仅当 gesture-imageview被缩小到原始规模时,才可以进行viewpager的换页。
效果图:
PS:之后的其他#issue中也提到了,如果能更好地支持viewpager,比如当图片的边界顶到屏幕边界时变可以切换图片等等就好了。
0 0
- viewpager嵌套开源组件gesture-imageview实现图片浏览和缩放
- viewpager嵌套开源组件gesture-imageview实现图片浏览和缩放
- Android 使用ViewPager结合PhotoView开源组件实现网络图片在线浏览功能
- iOS中UIScrollView嵌套UIImageView实现图片滑动浏览、缩放
- 利用ViewPager和ImagerView制作可浏览可缩放图片
- ViewPager 可左右滑动和缩放的图片浏览
- ImageView实现图片旋转和缩放
- imageView实现图片缩放和旋转
- gesture-imageview图片缩放库打成jar包
- gesture-imageview图片缩放库打成jar包
- Gallery+ImageView实现图片浏览
- ViewPager加ImageView图片浏览中点击ImageView结束查看
- ViewPager加ImageView图片浏览中点击ImageView结束查看
- ViewPager加ImageView图片浏览中点击ImageView结束查看
- Android imageview图片缩放实现
- viewPager+photoView实现图片轮播和手势缩放功能 支持手势缩放的imageView 如何实现相册左右滑动和手势缩放 如何让图片自适应控件大小 photoView如何使用(上)
- Android----imageView实现图片的旋转和缩放
- 手势监测GestureDetector和ImageView一起实现图片缩放
- 苹果手机传感器技术
- pcb技术:电源与地之间接电容的原因
- 黑马程序猿——JAVA基础------内部类
- 安装绿色版的mysql
- 选择排序---简单选择排序 堆排序
- viewpager嵌套开源组件gesture-imageview实现图片浏览和缩放
- Mac下安装OpenCV3.0—包含opencv_contrib模块
- Toll-Free Bridging
- hdu 5282 Senior's String
- OC基础之---- NSArray
- spring ioc原理
- Matlab优化问题10—fzero和fsolve解非线性方程(组)
- hadoop namenode重新格式化以后hbase的hmaster进程启动后马上消失
- SVN三种合并类型