web-dev-qa-db-fra.com

Récupérer une ressource tirable d'Uri

Je stocke le chemin de ressource dessinable dans un Uri de cette manière:

Uri uri = Uri.parse("Android.resource://my_app_package/drawable/drawable_name");

Comment obtenir le Drawable auquel l'uri fait référence?

Je ne veux pas le mettre dans une ImageView, il suffit de récupérer l'objet Drawable (ou Bitmap).

22
Daniele Vitali

getContentResolver cr object puis appelez:

is = cr.openInputStream(uri) 

et enfin appeler:

Drawable.createFromStream(InputStream is, String srcName)

... Voici un exemple de code de travail réel afin que vous puissiez voir par vous-même:

try {
    InputStream inputStream = getContentResolver().openInputStream(yourUri);
    yourDrawable = Drawable.createFromStream(inputStream, yourUri.toString() );
} catch (FileNotFoundException e) {
    yourDrawable = getResources().getDrawable(R.drawable.default_image);
}
53
pskink