0
点赞
收藏
分享

微信扫一扫

安卓读取相册选取图片并压缩

自由情感小屋 2022-02-27 阅读 102


背景:

因需要从相册中选择照片后做其他操作,但是照片有可能较大,则需要进行压缩。但是经过系统相册选择的图片,我们获取到的是URI,而不是实际文件路径。找了很多方法来将URI转为实际路径,最后没有找到完善的方法。其实URI的设计,就不是让大家将其转化为实际路径的,应该直接采用URI完成后续的业务,而不是再转回实际路径。

Demo源代码及apk

https://gitee.com/cxyzy1/compressPictureDemo

选取图片并压缩的主要代码

/**
* 图库选择图片
*/
private void selectPicture() {
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQUEST_CODE_GALLERY);
}

/**
* 接收#startActivityForResult(Intent, int)调用的结果
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE_GALLERY) {
Uri pictureUri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),pictureUri);
BitmapUtils.compress(bitmap,1024);
displayPicture(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}

/**
* 显示图片
* @param imageUri 图片的uri
*/
private void displayPicture(Uri imageUri) {
picIv.setImageURI(imageUri);
}
private void displayPicture(Bitmap bitmap) {
picIv.setImageBitmap(bitmap);
}



举报

相关推荐

0 条评论