好的,我正在使用ACTION_SEND
意图分享和成像。我对我最近所做的工作还不熟悉 - 我正在共享一个位图,这个位图是从保存并传递给Intent的视图生成的。
无论如何,通过一些基本的测试我已经注意到,如果你打开选择器,选择说短信,回击而不发送当我将另一个图像分享到SMS时,前一个作为附件出现。附加到SMS的图像示例:
这里的关键是,如果您在返回之前手动从草稿中删除图像,或者如果您发送图像,则您共享的下一个图像将是正确的。我分享到短信,环聊,推特但不是Facebook 时,我注意到了这种行为。同样重要的是,对于短信,环聊和Twitter手动删除修复了所有这些问题,Facebook无论如何工作。
回顾:
我不确定从哪里开始。这是我的问题吗?这是否与在不同应用程序中处理草稿消息有关,如果有,我可以做些什么呢?
以下是每个列表元素附加到共享按钮的共享代码:
if (holder.shareBTN != null) {
holder.shareBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bitmap icon = getBitmapFromView(holder.matchWrapperLL, holder.matchWrapperLL.getWidth(), holder.matchMainLL.getHeight());
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
icon.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path1 = Environment.getExternalStorageDirectory() + File.separator + "lolhistory_sc.jpg";
File f = new File(path1);
try {
if (f.exists()) {
// delete if exists
f.delete();
}
f.createNewFile();
FileOutputStream fos = new FileOutputStream(f);
fos.write(bytes.toByteArray());
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
String path2 = "file://" + f.getAbsolutePath();
Log.d("", path1);
Log.d("", path2);
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(path2));
startActivity(Intent.createChooser(share, "Share Image"));
}
});
}
这里是引用的getBitmapFromView
方法:
public static Bitmap getBitmapFromView(View view, int width, int height) {
view.setDrawingCacheEnabled(true);
view.buildDrawingCache(true);
view.setBackgroundColor(Color.WHITE);
// creates immutable clone
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
view.draw(canvas);
view.setDrawingCacheEnabled(false); // clear drawing cache
return bmp;
}
感谢您提供任何帮助或建议!
答案 0 :(得分:0)
将以下标志添加到Intent。
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);