From 0f8555b72861b7b9a233ab65b14055c98b145c91 Mon Sep 17 00:00:00 2001 From: Bjorn Bringert Date: Fri, 27 Nov 2009 12:42:28 +0000 Subject: [PATCH] Allow resource and file URIs in ImageView.setImageURI() Before, if you passed an android.resource URI, e.g. "android.resource://com.android.browser/2130837550" to ImageView.setImageURI(), it failed with: I/System.out( 1730): resolveUri failed on bad bitmap uri: android.resource://com.android.browser/2130837550 This change allows android.resource: and file: URIs in addition to the existing support for content: URIs. Fixes: http://b/issue?id=2289441 Change-Id: I98819b183c29eb60a70708d373d2199cdc0ea017 --- core/java/android/widget/ImageView.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java index b8f0a7e16f73b..8f2404125dddb 100644 --- a/core/java/android/widget/ImageView.java +++ b/core/java/android/widget/ImageView.java @@ -16,6 +16,7 @@ package android.widget; +import android.content.ContentResolver; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; @@ -489,7 +490,10 @@ public class ImageView extends View { mUri = null; } } else if (mUri != null) { - if ("content".equals(mUri.getScheme())) { + String scheme = mUri.getScheme(); + if (ContentResolver.SCHEME_CONTENT.equals(scheme) + || ContentResolver.SCHEME_ANDROID_RESOURCE.equals(scheme) + || ContentResolver.SCHEME_FILE.equals(scheme)) { try { d = Drawable.createFromStream( mContext.getContentResolver().openInputStream(mUri),