Растровое изображение не отображается в ImageView - PullRequest
0 голосов
/ 08 января 2011

При попытке отобразить JPG из URL у меня возникла проблема с отображением изображения в моем 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 голосов
/ 08 января 2011

У меня нет ответа непосредственно на ваш вопрос, но я могу предложить альтернативное решение для этой необходимости.

Использование ImageView вызовет у вас множество проблем для удобства использования.Вам нужно избегать блокировки экрана, и повторная загрузка изображения плоха с точки зрения оптимизации.

Я бы предложил гораздо более простое и эффективное решение;Вы можете использовать WebImageView от Droid-Fu.Отлично работает.вы просто передаете URL-адрес изображения и позволяете WebImageView обрабатывать загрузку, показывая прогресс и даже кэширование.

- вот игровой набор Droid-Fu на GitHub (поиск по «droid-fu»)

ps Я также сделал несколько расширений для этого механизма кэширования, уже выпущенного на моей игровой площадке github (поиск 'wareninja')

...