Commit a88d1585 authored by yinjiacheng's avatar yinjiacheng

update 图片服务拍照、选择完成后执行压缩

parent 60e493b7
...@@ -26,11 +26,13 @@ import java.io.FileInputStream ...@@ -26,11 +26,13 @@ import java.io.FileInputStream
* description: 图片服务 * description: 图片服务
* 提供调用原生相机拍照、图片选择器、图片预览、图片上传能力 * 提供调用原生相机拍照、图片选择器、图片预览、图片上传能力
*/ */
// TODO: 7/9/21 动态获取权限
// TODO: 7/9/21 清除缓存
class ImageService : ZapService() { class ImageService : ZapService() {
companion object { companion object {
private const val TAG = "ImageService" private const val TAG = "ImageService"
const val SERVICE_NAME = "ImageService" const val SERVICE_NAME = "imageService"
// 选择图片 // 选择图片
const val ACTION_SELECT_PIC = "selectImage" const val ACTION_SELECT_PIC = "selectImage"
...@@ -108,7 +110,10 @@ class ImageService : ZapService() { ...@@ -108,7 +110,10 @@ class ImageService : ZapService() {
PictureSelector.create(curTopActivity) PictureSelector.create(curTopActivity)
.openGallery(PictureMimeType.ofImage()) .openGallery(PictureMimeType.ofImage())
.imageEngine(GlideEngine.createGlideEngine()) .imageEngine(GlideEngine.createGlideEngine())
.maxSelectNum(SELECT_PIC_MAX_COUNT - params.maxCount) .maxSelectNum(params.maxCount)
.isWeChatStyle(true)
.isCompress(true)
.compressQuality(10)
.forResult(object : OnResultCallbackListener<LocalMedia> { .forResult(object : OnResultCallbackListener<LocalMedia> {
override fun onResult(result: MutableList<LocalMedia>?) { override fun onResult(result: MutableList<LocalMedia>?) {
if (result.isNullOrEmpty()) { if (result.isNullOrEmpty()) {
...@@ -116,12 +121,12 @@ class ImageService : ZapService() { ...@@ -116,12 +121,12 @@ class ImageService : ZapService() {
return return
} }
cacheSelectedImages.addAll(result as ArrayList<LocalMedia>) cacheSelectedImages.addAll(result as ArrayList<LocalMedia>)
val picList = ArrayList<SelectedImageBean>(SELECT_PIC_MAX_COUNT - params.maxCount) val picList = ArrayList<SelectedImageBean>(params.maxCount)
result.forEach { result.forEach {
picList.add( picList.add(
SelectedImageBean( SelectedImageBean(
result[0].id.toString(), result[0].id.toString(),
Base64.encodeToString(FileInputStream(it.realPath).readBytes(), Base64.DEFAULT) Base64.encodeToString(FileInputStream(it.compressPath).readBytes(), Base64.DEFAULT)
) )
) )
} }
...@@ -134,6 +139,8 @@ class ImageService : ZapService() { ...@@ -134,6 +139,8 @@ class ImageService : ZapService() {
} }
}) })
// ToastUtils.showShort("请到设置中授予存储空间权限")
// resolver.fail(CODE_PERMISSION_GRANT_FAIL, "check permission READ_EXTERNAL_STORAGE failed", "获取读取外部存储权限失败")
} }
/** /**
...@@ -143,6 +150,8 @@ class ImageService : ZapService() { ...@@ -143,6 +150,8 @@ class ImageService : ZapService() {
PictureSelector.create(curTopActivity) PictureSelector.create(curTopActivity)
.openCamera(PictureMimeType.ofImage()) .openCamera(PictureMimeType.ofImage())
.imageEngine(GlideEngine.createGlideEngine()) .imageEngine(GlideEngine.createGlideEngine())
.isCompress(true)
.compressQuality(10)
.forResult(object : OnResultCallbackListener<LocalMedia> { .forResult(object : OnResultCallbackListener<LocalMedia> {
override fun onResult(result: MutableList<LocalMedia>?) { override fun onResult(result: MutableList<LocalMedia>?) {
if (result.isNullOrEmpty()) { if (result.isNullOrEmpty()) {
...@@ -157,7 +166,7 @@ class ImageService : ZapService() { ...@@ -157,7 +166,7 @@ class ImageService : ZapService() {
arrayListOf( arrayListOf(
SelectedImageBean( SelectedImageBean(
result[0].id.toString(), result[0].id.toString(),
Base64.encodeToString(FileInputStream(result[0].realPath).readBytes(), Base64.DEFAULT) Base64.encodeToString(FileInputStream(result[0].compressPath).readBytes(), Base64.DEFAULT)
) )
) )
) )
...@@ -169,6 +178,8 @@ class ImageService : ZapService() { ...@@ -169,6 +178,8 @@ class ImageService : ZapService() {
resolver.fail(CODE_ACTION_CANCEL, "take cancel", "拍照取消") resolver.fail(CODE_ACTION_CANCEL, "take cancel", "拍照取消")
} }
}) })
// ToastUtils.showShort("请到设置中授予相机权限")
// resolver.fail(CODE_PERMISSION_GRANT_FAIL, "check permission CAMERA failed", "获取摄像头权限失败")
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment