如果我手头有这个:
R.drawable.foo
这只是对jpg文件的引用,如何在Android的图库应用中打开它?
我找到了一堆参考资料,其中提出了类似的内容:
startActivity(
new Intent(
Intent.ACTION_VIEW,
/* what goes here for the URI?? */
)
);
但我使用的是什么URI?
我正在做this tutorial并希望在点按时在原生Android应用中打开图片,这样我就可以免费获得缩放,共享等所有内容。
如果我不能在这里使用URI(如建议here),我该怎么做才能加载图片?
答案 0 :(得分:1)
按设计其他应用程序无法访问您的资源。它是相同的。
所以你有两个选择。
<强>易程:强>
将您的资源(manualy)复制到SD卡,然后发送uri
这就是你的URI看起来的样子
Uri.parse(Environment.getExternalStorageDirectory() + "/android/com.my.app/.cache/foo.jpg");
Environment.getExternalStorageDirectory()
抽象硬编码或挂载
.cache
将是隐藏文件夹,如果您不希望临时图像显示在图库图像中,则需要在.cache
文件夹中创建.nomedia空文件
您可能需要添加SD卡权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Hardway:
您需要使用FileContentProvider
实施ContentProvider为您提供自定义URI并从FileContentProvider.Open提供您的文件,您可能需要实现mime
和其他方法以及
<强>更新强> 您可能还需要在清单中注册您的内容提供商。 Android - open pdf in external application