2013-05-23 15 views
13

sto memorizzare il percorso delle risorse drawable in Uri in questo modo:Recupera risorsa drawable da Uri

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

Come faccio ad avere il Drawable che l'URI fa riferimento?

Non voglio metterlo in un ImageView, basta recuperare l'oggetto Drawable (o Bitmap).

risposta

42

getContentResolver cr object quindi chiamare:

is = cr.openInputStream(uri) 

e, infine, chiamare:

Drawable.createFromStream(InputStream is, String srcName) 

... Ecco un esempio reale codice di lavoro in modo da poter vedere di persona:

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

grazie! Ho scelto di modificare la risposta di @ pskink (rispetto a fornire una nuova risposta) poiché potevo prendere solo un credito parziale. – PeteH

+0

Nota: potrebbe essere necessario chiamare anche 'yourDrawable.setBounds (...)', in alcuni casi come impostarlo come un drawable composto di un 'TextView' –

Problemi correlati