仿微信多图片选择、预览、手势处理
来源:互联网 发布:电视下载软件格式 编辑:程序博客网 时间:2024/06/16 06:31
https://github.com/wangluu/PicSelect
因为觉得网上其他的仿微信图片选择都不够好,特别是手势处理,大图查看时,稍微放大图片,再左滑右滑效果很不理想,所以我自己做了一个。
(Gif太麻烦了,截几张图吧)
features
1.传参定义主题颜色,最多图片数量等。
2.仿微信,增加拍摄直接选中,分文件夹,预览,单击全屏,双击放大,多指操作平滑
3.我认为最重要的一个地方(GIF中的效果),受限于android事件传递机制,必须要自己对事件进行控制,我是自定义Wiewpager(没写错,稍微修改viewpager源码),加上自定义ImageView实现的,Wiewpager拦截分配所有触摸事件(实现起来才知道有多麻烦,没有像其他仿微信的使用诸如PhotoView这类单纯控件,因为这样无法达到微信的手势效果)。
使用起来像是下面这样:
//startActivityForResult启动界面,在onActivityResult中获取选中结果。用我的IntentBuilder或者自己定义intentstartActivityForResult(new SelectPictureActivity.IntentBuilder().maxCount(9).themeColor(yourColor).build(context), 1);
获取选中结果
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode ==Activity.RESULT_OK&& requestCode == 1 ){ //获取选中图片的路径 List<String> imgPaths = data.getStringArrayListExtra(SelectPictureActivity.IMAGES); mAdapter.setData(imgPaths); mAdapter.notifyDataSetChanged(); } }
还可以预览图片:
//data就是图片路径地址list,可以是网络图片.initPosition初始位置Intent intent = new ViewImageActivity.IntentBuilder().images(data).initPosition(initPosition).themeColor(c).showTopBar(true).build(MainActivity.this);startActivity(intent);
源码和示例已经放在github,
https://github.com/wangluu/PicSelect
当然还需要再完善的,有什么问题或者需求,可以提出来,我会抽时间完善,如果你有用到或者对你有帮助记得给个star,3Q。
阅读全文
1 0
- 仿微信多图片选择、预览、手势处理
- Django之处理选择预览图片
- input选择图片 预览图片
- html5 上传 图片 预览 选择
- file 选择图片后预览
- 【技巧】input选择图片预览
- 微信小程序选择图片和预览图片
- 微信小程序选择图片和预览图片
- 浏览器处理预览图片方法
- FileUpload控件--选择图片后生成预览
- FileUpload控件--选择图片后生成预览
- 支持图片预览的文件选择对话框
- js 选择预览图片,并上传
- html选择本地图片即时预览
- jsp页面 上传图片预览 的处理
- JFileChooser ,让你的图片选择可以预览图片内容
- 图片上传预览,选择图片上传后得到ByteArray
- 上传单个图片,选择图片后即可预览
- 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
- 关于Error:Some file crunching failed, see logs for details
- 最大流dinic模板
- 网站列表页面的显示(列表标签)
- AQS原理解析
- 仿微信多图片选择、预览、手势处理
- 中级第一章--封装
- spl_autoload_register的自动加载学习
- java作业
- C#编程要点汇总
- 配置class PATH
- android手机的扩容教程,解决手机系统空间不足问题
- 2017乌鲁木齐网赛 B.Out-out-control cars
- 移植linux-2.6.38出现 error: implicit declaration of function 'irq_to_gpio'