android - 将图片保存在某个存储位置并将其路径存储到 SQLite 数据库表中
问题描述
我正在使用 SQLite 开发应用程序,我希望能够为用户选择个人资料图片(将保存在本地)。基本上我有一个裁剪活动,我想选择一张图片,裁剪并压缩它,然后我想将它保存在手机中的某个存储路径中,不会被清理缓存删除,也不会在手机图库(重要)。同时,我希望将新路径保存在我的 SQLite 数据库中,以便在需要时将其快速加载到 ImageView 中。
这是我在测试 ImageView 中加载、裁剪、压缩和预览图片的代码。
public void chooseProfilePicture(){
CropImage.activity().setGuidelines(CropImageView.Guidelines.ON).setAspectRatio(1,1).start(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE)
{
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if(resultCode == RESULT_OK)
{
assert result != null;
profileImageURI = result.getUri();
File thumbnailURI = new File(Objects.requireNonNull(profileImageURI.getPath()));
try
{
compressedImageFile = new Compressor(activity_user_data.this)
.setMaxHeight(400)
.setMaxWidth(400)
.setQuality(90)
.compressToBitmap(thumbnailURI);
}
catch (IOException e)
{
e.printStackTrace();
}
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
compressedImageFile.compress(Bitmap.CompressFormat.JPEG, 90, byteArrayOutputStream);
profilePicker.setImageBitmap(compressedImageFile);
isImageSelected = true;
}
else
if(resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE)
{
assert result != null;
Exception error = result.getError();
}
}
}
解决方案
推荐阅读
- php - Bootstrap 的卡片和 php 数据
- sass - SASS 部分:存在或不存在
- sql - ORACLE - 从整个表(所有列)中计算特定值
- java - 颤振上签名的Android应用程序中的Parcelable错误
- julia - Julia 无法测试用户包
- php - php mssql 下一行
- bash - 为什么我的 bash 脚本会截断传入的参数?
- android-studio - Android Studio 不生成捆绑包
- python - 如何在python中总结一个列表?
- embed - 使用“嵌入”从 Google 协作平台访问 Google 表格 API:“不是客户端的有效来源”错误