固定图像内存泄漏使用滑行



我有一个功能如下的应用:

用户打开应用程序 ->活动包含一个图像视图,当单击时... ->用cropper打开图像查看器 ->根据所选图像的URI

更改图像视图中的图像

这一切都起作用。我只是注意到,在加载完整分辨率的图像时,我的应用程序滞后,有时会崩溃。这可能是由于图像的大小/分辨率,我不知道如何修复。

我的代码:

private void goSelectImage(){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
        if (ContextCompat.checkSelfPermission(CompleteProfileActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
            Toast.makeText(this, "Access Denied", Toast.LENGTH_LONG).show();
            ActivityCompat.requestPermissions(CompleteProfileActivity.this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE},1);
        } else {
            BringImagePicker();
        }
    } else {
        BringImagePicker();
    }
}
private void BringImagePicker() {
    // start picker to get image for cropping and then use the image in cropping activity
    CropImage.activity()
            .setGuidelines(CropImageView.Guidelines.ON)
            .setAspectRatio(1,1)
            .start(CompleteProfileActivity.this);
}
//CROP FUNCTIONALITY - ESSENTIAL
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
        CropImage.ActivityResult result = CropImage.getActivityResult(data);
        if (resultCode == RESULT_OK) {
            mainImageUri = result.getUri();
            //Bitmap bitmap = BitmapFactory.decodeResource(mainImageUri);
            imgProfile.setImageURI(mainImageUri);
            //isChanged = true;
        } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
            Exception error = result.getError();
        }
    }
}

注意到我尝试了Bitmap bitmap = BitmapFactory.decodeResource(mainImageUri);,但没有奏效。是否有任何代码可以帮助我减少图像视图中图像的显示分辨率?很抱歉问这个广泛的问题,我刚刚从Android Studio开始。

您对imgProfile.setImageURI(mainImageUri);的调用将从UI线程解码位图。

https://developer.android.com/reference/android/widget/imageview.html#setimageuri(android.net.uri(

>

请参阅官方文档以了解如何有效加载位图:

https://developer.android.com/topic/performance/graphics/load-bitmap.html

最新更新