我有一个应用程序,它截取屏幕截图并将其与共享意图共享。每次用户想要简单地共享图像时,不是保存多个图像。以下是我用于保存到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);
有没有办法在不保存图像的情况下执行此操作?
由于
答案 0 :(得分:4)
我最终做的是将一个“Temp”图像保存到SD / Phone并且每次都覆盖。
答案 1 :(得分:1)
尝试使用这个:
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"));
此代码可以很好地发送我在我的应用中使用的drawable。没有图片保存在SD卡上。唯一的问题是它不能与某些社交应用程序一起使用:/
答案 2 :(得分:-1)
是的,您可以发送图像而无需将其另存为文件。只需查看您发布的代码,我就不知道如何发送图像,但是您使用以下内容转换文件:
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;