我想在图库中保存图像点击按钮

时间:2018-03-13 10:38:59

标签: android android-intent media-queries android-image android-studio-3.0

我已经尝试过堆栈溢出的代码。链接提及下面

How to save image in android gallery

但是那个答案对我的项目没有影响。请帮我找一个解决方案。

我在应用程序中设计了两个用于保存图像的按钮和一个用于共享图像的按钮。

我已经尝试过下载图片的代码。但这段代码没有显示任何内容。

imageView.setDrawingCacheEnabled(true);
Bitmap b = imageView.getDrawingCache();
MediaStore.Images.Media.insertImage(context.getContentResolver(), b ,"image", "image decsription");

现在 我想与意图共享相同的图像。我试过这段代码,但它正在向我展示

  

无法附加媒体文件

我的代码在下面..

private void createShareIntent(){
        Intent shareIntent=new Intent(Intent.ACTION_SEND);
        shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        shareIntent.setType("image/*");
        shareIntent.putExtra(Intent.EXTRA_STREAM,mImageUrl);
        shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        shareIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
        startActivity(Intent.createChooser(shareIntent,"Send "));
    } 

请帮我找一个解决方案。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

试一下

//to get the image from the ImageView (say iv)
BitmapDrawable draw = (BitmapDrawable) iv.getDrawable();
Bitmap bitmap = draw.getBitmap();

FileOutputStream outStream = null;
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File(sdCard.getAbsolutePath() + "/YourFolderName");
dir.mkdirs();
String fileName = String.format("%d.jpg", System.currentTimeMillis());
File outFile = new File(dir, fileName);
outStream = new FileOutputStream(outFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.flush();
outStream.close();

此外,为了刷新图库并在那里查看图像:

Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent.setData(Uri.fromFile(file));
sendBroadcast(intent);

还要确保您的应用已启用存储权限: 转到设备设置>设备>应用程序>应用程序管理器>"您的应用">权限>启用存储权限!

清单权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />