我是靠谱客的博主 甜美小海豚,这篇文章主要介绍Android 超高仿微信图片多选、单选,图片剪切,图片预览,拍照等功能,现在分享给大家,希望可以做个参考。

github地址:
https://github.com/ioneday/ImageSelector


实现了微信图片选择的所有功能

  • 单选、多选
    • 单选,没有预览功能。
    • 多选,可以控制最大 选择图片数量
  • 拍照
    • 解决了三星拍照横屏的bug
    • 关闭拍照后,第一个item将不显示拍照选项
  • 预览
    • 开启预览功能后,点击图片或右下角预览进入预览界面。
    • 关闭后,点击图片为选择功能
    • 进入预览界面后,依然可以,选择或取消选择
  • 剪切
    • 只有单选模式下,才能打开剪切功能。
    • 默认只能剪切正方形,可自定义

实现效果:

微信相似度 95%

这里写图片描述这里写图片描述这里写图片描述这里写图片描述这里写图片描述

代码结构

这里写图片描述

快速开始

1) 添加以下依赖

复制代码
1
2
3
4
5
6
7
dependencies { compile 'com.android.support:recyclerview-v7:22.2.1' compile 'com.github.bumptech.glide:glide:3.6.1' compile 'com.commit451:PhotoView:1.2.4' compile 'com.isseiaoki:simplecropview:1.0.13' compile 'com.yongchun:com.yongchun.imageselector:1.1.0' }

2) 在 AndroidManifest.xml 添加权限,并注册相关Activity

复制代码
1
2
3
4
5
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <activity android:name="com.yongchun.library.view.ImageSelectorActivity"/> <activity android:name="com.yongchun.library.view.ImagePreviewActivity"/> <activity android:name="com.yongchun.library.view.ImageCropActivity"/>

3) 设置相关必要参数

复制代码
1
ImageSelectorActivity.start(MainActivity.this, maxSelectNum, mode, isShow,isPreview,isCrop);

上面的代码等同于:

复制代码
1
2
3
4
5
6
7
8
9
public static void start(Activity activity, int maxSelectNum, int mode, boolean isShow, boolean enablePreview, boolean enableCrop) { Intent intent = new Intent(activity, ImageSelectorActivity.class); intent.putExtra(EXTRA_MAX_SELECT_NUM, maxSelectNum); intent.putExtra(EXTRA_SELECT_MODE, mode); intent.putExtra(EXTRA_SHOW_CAMERA, isShow); intent.putExtra(EXTRA_ENABLE_PREVIEW, enablePreview); intent.putExtra(EXTRA_ENABLE_CROP, enableCrop); activity.startActivityForResult(intent, REQUEST_IMAGE); }

4) 在 onActivityResult 回调中接收选择的图片

复制代码
1
2
3
4
5
6
7
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(resultCode == RESULT_OK && requestCode == ImageSelectorActivity.REQUEST_IMAGE){ ArrayList<String> images = (ArrayList<String>) data.getSerializableExtra(ImageSelectorActivity.REQUEST_OUTPUT); // do something } }

使用的第三方库有:

Glide(快速加载图片,不会卡顿,不会OOM)
PhotoView(双击放大图片,旋转图片等功能)
simplecropview(自定义剪切比例,尺寸)

欢迎Star、Fork

github地址:
https://github.com/ioneday/ImageSelector

最后

以上就是甜美小海豚最近收集整理的关于Android 超高仿微信图片多选、单选,图片剪切,图片预览,拍照等功能的全部内容,更多相关Android内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部