位图不出现在ImageView中

时间:2011-01-08 09:03:37

标签: android bitmap imageview

尝试从URL显示JPG时,我遇到问题,让图像显示在我的ImageView中。我能够打开URLConnection,在InputStream中向下拉图像,将该流解码为Bitmap。我甚至可以获得位图的高度和宽度的值。我将位图设置为ImageView,仍然可以获得Drawable的高度。但是,图像仍未出现在我的应用程序中。我可能缺少什么想法?谢谢你的帮助。

try{
    URL imgURL = new URL(imgLocation);
    URLConnection conn = imgURL.openConnection();
    conn.connect();
    InputStream is = conn.getInputStream();

    BufferedInputStream bis = new BufferedInputStream(is, 25);

    Bitmap bm = BitmapFactory.decodeStream(bis);

    if(bm != null){
        System.err.println("Image Height: " + bm.getHeight());
        System.err.println("Image Width: " + bm.getWidth());
    } else {
        System.err.println("bm is null!!!");
    }

    img.setImageBitmap(bm);
    System.err.println("Drawable Height: " + img.getDrawable().getIntrinsicHeight());

    } catch (IOException e) {
        // Print out the exception that occurred
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:0)

我没有直接回答您的问题,但我可以为此需求提出替代解决方案。

使用ImageView会导致很多问题,因为可用性。 您需要避免屏幕锁定,并且从优化角度重新下载图像是不好的。

我建议更简单&有效解决方案你可以使用Droid-Fu的WebImageView。 它就像一个魅力。你只需传递图像的url,然后让WebImageView处理下载,显示进度甚至缓存。

这是GroidHub上的Droid-Fu的playgorund(搜索'droid-fu')

P.S。我也对这个缓存机制进行了一些扩展,已经在我的github playground中发布了(搜索'wareninja')