Android:共享位图未保存到SD

我有一个应用程序,它截取屏幕截图,并与共享意图分享。 每次用户想要简单地共享图像时,不是保存多个图像。 以下是我用于保存到SD的图像的代码

Intent share = new Intent(Intent.ACTION_SEND); share.setType("image/png"); dir = "file://" + Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Folder/" + location; share.putExtra(Intent.EXTRA_STREAM, Uri.parse(dir)); startActivity(Intent.createChooser(share, "Share Image")); 

但是,我无法弄清楚如何简单地保存位图,如…

 share.putExtra(Intent.EXTRA_STREAM, theBitmap); 

有没有办法在不保存图像的情况下执行此操作?

谢谢

我最近做的是将一个“Temp”图像保存到SD / Phone并且每次都覆盖。

尝试使用这个:

 Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); Uri uri = Uri.parse("android.resource://com.your.app/drawable/" + yourimage); shareIntent.putExtra(Intent.EXTRA_STREAM, uri); shareIntent.putExtra(Intent.EXTRA_TEXT, shareImage); shareIntent.setType("image/*"); startActivity(Intent.createChooser(shareIntent, "Send your image")); 

这段代码适用于我发送我在我的应用程序中使用的drawables。 没有在SD卡上保存的图片。 唯一的问题是它不能与某些社交应用程序一起使用:/

是的,您可以发送图像,而无需将其保存为文件。 只需查看您发布的代码,我就不知道如何发送图像,但是您使用以下内容转换文件:

  ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] data; if(yourBitmap!=null){ yourBitmap.compress(CompressFormat.PNG, 75, bos); }else if (yourBitmap==null){ Log.w("Image going to server is null","Lost in memory"); } try{ data = bos.toByteArray(); 

我不知道你是否通过你的应用程序将图像发送给其他用户,或者我将如何使用它上传到服务器。 当您完成图像后,您可以将它全部取消。

  bos = null; data = null; yourBitmap = null;