使用URI存储图像URL或图像路径

时间:2013-05-22 07:22:50

标签: android uri

我有一个对图像有引用的类。此图像可以位于服务器上,也可以位于应用程序的可绘制资源中。我需要存储图像文件的URL或可绘制位置的位置。 为了处理这个问题,我使用Uri作为类的属性。

首先,这是一个正确的解决方案吗? 然后,我如何检查Uri是否具有对drawable的引用或对URL的引用? 如何将可绘制资源的位置存储在Uri中?

2 个答案:

答案 0 :(得分:1)

您建议一个解决方案。如果没有看到某些代码,很难说这是正确的解决方案。

我自己没有尝试过,但显然你可以使用Uri这样的抽象:

Uri uri = Uri.parse("android.resource://your.package.here/drawable/image_name");
InputStream stream = getContentResolver().openInputStream(uri);

这意味着您应该能够将URI存储为SharedPreferences中的字符串。下次需要加载图像时,从SharedPreferences中检索URI字符串,如果字符串以“android.resource://”开头,则使用内容解析器和BitmapFactory.loadStream()加载图像。如果字符串不以“android.resource://”开头,则使用您决定给我们的任何Http框架(OkHttp,UrlConnection,Android Async Http等)获取Web上图像的输入流。

答案 1 :(得分:0)

Uri uri = Uri.parse("string");

在此字符串中,您可以传递网址或图像的名称或路径。