Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-可作为URL绘制的参考资源_Android - Fatal编程技术网

Android-可作为URL绘制的参考资源

Android-可作为URL绘制的参考资源,android,Android,我在我的Android应用程序中使用了一个API,可以从web下载图像,并在图像下载时显示占位符动画(RemoteImageView,点火软件包的一部分) 在应用程序中的某些时候,我需要显示来自本地资源drawables的图像,而不是从web下载的图像 可以使用URL访问本地资源drawable吗?本地图像资源没有URL,它们有URI。因此,如果您在drawable中有图像,您可以将它们从资源id解析为URI Uri uri=Uri.parse("R.drawable.image"); 但是,

我在我的Android应用程序中使用了一个API,可以从web下载图像,并在图像下载时显示占位符动画(RemoteImageView,点火软件包的一部分)

在应用程序中的某些时候,我需要显示来自本地资源drawables的图像,而不是从web下载的图像


可以使用URL访问本地资源drawable吗?

本地图像资源没有URL,它们有URI。因此,如果您在drawable中有图像,您可以将它们从资源id解析为URI

Uri uri=Uri.parse("R.drawable.image");
但是,如果您还可以将图像放在软件包的资产文件夹中,并使用其URL访问它们。图像文件的URL将为“file:///android_asset/image.png" 您可以使用任一选项。

操作方法:

使用这一行
“android.resource://[your package]/”+[resid]

这里有一个例子

Uri myURI = Uri.parse("android.resource://com.example.project/" + R.drawable.myimage);
为方便起见,您可以将其用作一种方法:

public static Uri getUrl(int res){
  return Uri.parse("android.resource://com.example.project/" + res);
}

警告不要使用
context.getPackageName()
作为包名的替代,因为它可能返回空值。

Uri.parse是说R.drawable.image应该是一个字符串。这不可能是正确的??Woops,忘记添加引号。现在更正。不…两者都不起作用。我想API是通过URLConnection建立连接的,我必须向它传递URL.Ur的字符串表示形式i、 parse().toString()只需返回原始字符串…它无法使用file:///android_asset/.. 路径i尝试使用以下语法将图像文件解析为Uri.parse()“android.resource://[package]/[res id]”,例如-Uri Uri=Uri.parse(“android”)。resource://com.example/“+R.可绘制图像);不……什么都没有。我想我必须破解API,直接从资源中显示drawable,而不是通过URLConnection访问它。在什么情况下,在应用程序初始化后,它会返回null?如果不以编程方式加载,那么更改包的构建将破坏代码。为什么不使用BuildConfig.APPLICATION_ID?@CristianGomez可以随意使用BuildConfig,这个答案是3年前做出的(有点过时)当时我的IDE是Eclipse,Gradle不是我熟悉的。这里重要的部分是知道类似于资源位置的Uri。不幸的是,我无法让它工作。通过Glide加载时,我没有收到错误消息,它根本没有加载。