Android - 在 Facebook、Twitter 等中共享位图而不保存存储空间
Android - Share Bitmap in Facebook, Twitter, ... Without saving in storage
如何在 Facebook、Twitter、邮件等中共享位图而不将图像保存在内部或外部存储中?
首先,我会暂时将您的位图写入 external storage,并使用它来调试您的基本共享文件逻辑。
然后,实现一个 ContentProvider
,在其中覆盖 openFile()
并提供 byte[]
的 PNG(或 JPEG 或其他格式)。然后在 ACTION_SEND
Intent
中使用指向 ContentProvider
的 content://
Uri
,而不是指向外部存储的 Uri
。
This sample project 演示了基本结构。在我的例子中,我从资产中提供文件,而不是从内存中,所以你会改变这部分逻辑。另外,我使用 ContentProvider
作为 ACTION_VIEW
请求而不是 ACTION_SEND
,因此需要对其进行更改。
效果如何将取决于第三方应用程序从您的提供商读取内容的速度以及您是否可以安排在内存中保留位图那么久。
如何在 Facebook、Twitter、邮件等中共享位图而不将图像保存在内部或外部存储中?
首先,我会暂时将您的位图写入 external storage,并使用它来调试您的基本共享文件逻辑。
然后,实现一个 ContentProvider
,在其中覆盖 openFile()
并提供 byte[]
的 PNG(或 JPEG 或其他格式)。然后在 ACTION_SEND
Intent
中使用指向 ContentProvider
的 content://
Uri
,而不是指向外部存储的 Uri
。
This sample project 演示了基本结构。在我的例子中,我从资产中提供文件,而不是从内存中,所以你会改变这部分逻辑。另外,我使用 ContentProvider
作为 ACTION_VIEW
请求而不是 ACTION_SEND
,因此需要对其进行更改。
效果如何将取决于第三方应用程序从您的提供商读取内容的速度以及您是否可以安排在内存中保留位图那么久。