Android 从Uri检索可绘制资源
我以以下方式将可绘制资源路径存储在Uri中:Android 从Uri检索可绘制资源,android,uri,android-drawable,Android,Uri,Android Drawable,我以以下方式将可绘制资源路径存储在Uri中: Uri uri = Uri.parse("android.resource://my_app_package/drawable/drawable_name"); 如何获取uri引用的可绘制文件 我不想将其放在ImageView中,只需检索可绘制(或位图)对象。getContentResolver cr对象然后调用: is = cr.openInputStream(uri) 最后,请致电: Drawable.createFromStream(In
Uri uri = Uri.parse("android.resource://my_app_package/drawable/drawable_name");
如何获取uri引用的可绘制文件
我不想将其放在ImageView中,只需检索可绘制(或位图)对象。
getContentResolver cr对象
然后调用:
is = cr.openInputStream(uri)
最后,请致电:
Drawable.createFromStream(InputStream is, String srcName)
…下面是一个实际工作的代码示例,您可以自己查看:
try {
InputStream inputStream = getContentResolver().openInputStream(yourUri);
yourDrawable = Drawable.createFromStream(inputStream, yourUri.toString() );
} catch (FileNotFoundException e) {
yourDrawable = getResources().getDrawable(R.drawable.default_image);
}
谢谢我选择编辑@pskink的答案(与提供新答案相比),因为我只能获得部分学分。注意:您可能还需要调用
yourDrawable.setBounds(…)
,在某些情况下,例如将其设置为TextView
的复合可绘制,如果@Avinash提到的内容是正确的,则不会在屏幕上绘制可绘制内容。