【问题标题】:Android BitmapDrawable Constructor UndefinedAndroid BitmapDrawable 构造函数未定义
【发布时间】:2011-02-05 02:03:35
【问题描述】:

我正在尝试从网络加载图像。我到目前为止的代码如下:

资源 res = getResources(); InputStream = (InputStream) new URL(url).getContent(); BitmapDrawable bitmapDrawable = new BitmapDrawable(res, is); // 错误:构造函数 BitmapDrawable(Resources, InputStream) 未定义

最后一行产生一个错误,就好像构造函数不存在一样。但是,文档说明如下:


BitmapDrawable(InputStream 是) 此构造函数已弃用。使用 BitmapDrawable(Resources, java.io.InputStream) 确保可绘制对象已正确设置其目标密度。

BitmapDrawable(Resources res, InputStream is) 通过从给定的输入流中解码位图来创建可绘制对象。


所以,我很茫然。这应该可以工作,但我的设置有误,或者我需要找到另一种从网络加载图像的方法。有谁知道为什么这段代码不能编译或建议更好的方法来加载图像(或两者)?

【问题讨论】:

    标签: android image bitmap inputstream drawable


    【解决方案1】:

    该构造函数是从 API 级别 5 开始添加的,所以我猜您使用的是较旧的 API 级别,因此您会收到该错误。尝试使用 Android 2.1 (eclair) 或更新版本,或者不要使用该构造函数。

    我刚试过,效果很好:

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

    【讨论】:

    • 我想就是这样。谢谢。我使用的是 API Level 4,所以我的应用程序可以在尚未升级的手机上运行。我不确定“资源资源”对图像的显示方式有多重要。换句话说,“确保可绘制对象已正确设置其目标密度”是什么意思?如果它足够重要,我应该将它用于 API 级别 5 或更高级别的手机,Android 程序员通常如何处理这种情况?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2020-09-30
    • 1970-01-01
    相关资源
    最近更新 更多