2011-02-05 127 views
0

我试图从网络加载图像。我到目前为止的代码如下:Android BitmapDrawable构造函数未定义

 

Resources res = getResources(); 

InputStream is = (InputStream) new URL(url).getContent(); 

BitmapDrawable bitmapDrawable = new BitmapDrawable(res, is); 
// Error: The constructor BitmapDrawable(Resources, InputStream) is undefined 

最后一行产生错误,就好像构造函数不存在一样。然而,文件说以下内容:


BitmapDrawable(InputStream为) 此构造已被弃用。使用BitmapDrawable(Resources,java.io.InputStream)确保drawable已正确设置其目标密度。

BitmapDrawable(Resources res,InputStream is) 通过解码给定输入流中的位图来创建drawable。


所以,我不知所措。要么这应该工作,我有东西设置错了,或者我需要找到另一种方式来从网络加载图像。有谁知道为什么这个代码不会编译或建议更好的方式来加载图像(或两者)?

回答

1

该构造函数是自API Level 5以来添加的,因此我猜你使用的是较旧的API级别,因此会出现该错误。尝试使用Android 2.1(eclair)或更新的或不使用该构造函数。

我只是想这和它的工作:

InputStream is = (InputStream) new URL(url).getContent(); 
BitmapDrawable bitmapDrawable = new BitmapDrawable(is); 
+0

我认为这是它。谢谢。我正在使用API​​ Level 4,因此我的应用程序可用于尚未升级的手机。我不确定“资源库”对图像的显示方式有多重要。换句话说,“确保drawable已正确设置其目标密度”是什么意思?如果足够重要,我应该将其用于具有API Level 5或更高级别的手机,那么Android程序员通常会如何处理这种情况? – user405821 2011-02-05 04:18:55