如果给出`R.drawable.foo`参考,如何在图库应用中加载图像?

时间:2011-08-29 02:54:28

标签: android

如果我手头有这个:

R.drawable.foo

这只是对jpg文件的引用,如何在Android的图库应用中打开它?

我找到了一堆参考资料,其中提出了类似的内容:

startActivity(
    new Intent(
        Intent.ACTION_VIEW,  
        /* what goes here for the URI?? */
    )
); 

但我使用的是什么URI?

我正在做this tutorial并希望在点按时在原生Android应用中打开图片,这样我就可以免费获得缩放,共享等所有内容。

如果我不能在这里使用URI(如建议here),我该怎么做才能加载图片?

1 个答案:

答案 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