返回
三行代码搞定 Android 照片选择与压缩
Android
2023-09-09 22:39:10
在Android开发中,经常需要选择照片的功能。传统的做法是使用Intent来启动系统相册,然后在onActivityResult()方法中获取选择的图片。但是,这种方法存在一些问题:
- 需要手动处理onActivityResult()方法中的结果。
- 需要手动压缩图片,以减少图片的大小。
- 兼容性差,在Android 7.0以上版本中,需要使用FileProvider来获取相片uri。
为了解决这些问题,可以利用PhotoFactory类来进行照片选择和压缩。PhotoFactory类是一个开源的Android库,它可以帮助你轻松地选择照片并将其压缩。使用PhotoFactory类,只需三行代码就可以完成选择照片,获取其bitmap或uri路径(可自行配置是否压缩)的功能。
PhotoFactory类的使用
- 添加依赖
在你的build.gradle文件中添加PhotoFactory的依赖:
dependencies {
implementation 'com.github.bumptech.glide:glide:4.11.0'
implementation 'com.github.yalantis:ucrop:2.2.6'
implementation 'com.github.armcha:PhotoFactory:1.0.3'
}
- 初始化PhotoFactory
在你的Activity或Fragment中,初始化PhotoFactory类:
PhotoFactory photoFactory = PhotoFactory.with(this);
- 选择照片
使用PhotoFactory的pickPhoto()
方法来选择照片:
photoFactory.pickPhoto();
- 获取选择的图片
在onActivityResult()方法中,获取选择的图片:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 获取选择的图片
Bitmap bitmap = photoFactory.getBitmap();
Uri uri = photoFactory.getUri();
}
配置PhotoFactory
PhotoFactory类提供了多种配置选项,可以根据需要进行配置。以下是一些常见的配置选项:
- 是否压缩图片 :可以通过
setCompressEnabled()
方法来设置是否压缩图片。 - 压缩质量 :可以通过
setCompressQuality()
方法来设置压缩质量。 - 压缩格式 :可以通过
setCompressFormat()
方法来设置压缩格式。 - 压缩后的图片大小 :可以通过
setCompressSize()
方法来设置压缩后的图片大小。
兼容Android 7.0以上版本
在Android 7.0以上版本中,需要使用FileProvider来获取相片uri。PhotoFactory类已经兼容了Android 7.0以上版本,因此不需要手动使用FileProvider。
结语
PhotoFactory类是一个非常好用的Android库,它可以帮助你轻松地选择照片并将其压缩。PhotoFactory类简单易用,兼容性好,是Android开发人员必备的库之一。