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

时间:2016-11-18 06:35:58

标签: android image crop image-gallery

我可以在全屏模式下看到旋转和歪曲的图像,但不知何故它不会在缩略图部分更新。

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

我想在我的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();
    }
}

2 个答案:

答案 0 :(得分:0)

在您的活动调用adapter.notifyDataSetChanged()

的onResume部分中

答案 1 :(得分:0)

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

替换它

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

现在的作品。