Android – 引用资源作为URL可绘制

我在我的Android应用程序中使用API​​从网上下载图像,并在图像下载时显示占位符animation(RemoteImageView, 这里是Ignition包的一部分。

在应用程序的某些点上,我需要显示来自本地资源绘制的图像,而不是从网上下载。

是否有可能使用URL访问本地资源drawables?

Solutions Collecting From Web of "Android – 引用资源作为URL可绘制"

本地图像资源不具有URL,它们具有URI。 所以如果你的图像是可绘制的,你可以从资源id到URIparsing它们。

Uri uri=Uri.parse("R.drawable.image"); 

但是,如果您也可以将图像放在包的资产文件夹中,并使用其URL访问它们。 图像文件的URL将是“file:///android_asset/image.png”您可以使用任一选项。

要做到这一点:

使用这行"android.resource://[your package]/"+[res id]

这是一个例子

 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()作为包名的替代,因为它可能会返回空值。