旋转并裁剪图像,然后将该图像保存在同一路径上

问题描述 投票:0回答:2

我能够在全屏模式下看到旋转和裁剪的图像,但不知何故它不会在缩略图部分更新。

  1. 我从图库中选择了一张图像并显示在包含 imageview 的 recyclerview 中。
  2. 然后我单击以全屏打开的图像视图并进行旋转和裁剪,然后使用裁剪器库保存该图像
  3. 然后它不会在 recyclerview 中更新,但是当我单击该图像时,它会以全屏模式显示裁剪和旋转的图像。

我想在我的回收视图中显示与全屏模式相同的图像

下面是我的代码...

  //override method for cropper library
 @Override
 public void onCropImageComplete(CropImageView view,CropImageView.CropResult result) { 

    handleCropResult(result, view);
}

      private void handleCropResult(CropImageView.CropResult result, CropImageView view) 
    {
    if (result.getError() == null) {
        view.setImageBitmap(view.getCroppedImage());
        saveImageInGallery(view.getCroppedImage(),         String.valueOf(view.getTag()));
        Log.i("UriResult", String.valueOf(result.getUri()));
    } else {
        Log.e("AIC", "Failed to crop image", result.getError());
        Toast.makeText(_activity, "Image crop failed: " + result.getError().getMessage(), Toast.LENGTH_LONG).show();
    }
}



  private void saveImageInGallery(Bitmap bitmap, String imagePath) {
    File file = new File(imagePath);
    if (file.exists()) {
        if (file.delete()) {
            Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            Uri contentUri = Uri.fromFile(file);
            mediaScanIntent.setData(contentUri);
            _activity.sendBroadcast(mediaScanIntent);
        }
    }

    try {
        File mNewFile = new File(imagePath);
        FileOutputStream out = new FileOutputStream(mNewFile);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
        bitmap.recycle();


        Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
        Uri contentUri = Uri.fromFile(mNewFile);
        mediaScanIntent.setData(contentUri);
        _activity.sendBroadcast(mediaScanIntent);

        out.flush();
        out.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}
android image crop image-gallery
2个回答
0
投票

在活动调用的 onResume 部分

adapter.notifyDataSetChanged()


0
投票

我之前用滑行显示图像,现在我用

替换它

holder.imageView.setImageURI(Uri.parse("file://" + imageList.get(position).getImageName()));

现在可以使用了。

© www.soinside.com 2019 - 2024. All rights reserved.