Дополнительное пространство выше и ниже Android Bitmap - PullRequest
0 голосов
/ 19 июня 2011

Я загружаю растровое изображение с веб-сайта, а затем отображаю его в своем приложении. Всякий раз, когда я загружаю это изображение и устанавливаю его в ImageView, всегда есть много дополнительного пространства над или под фактическим изображением. Это дополнительное пространство является частью ImageView и появляется только после того, как я установил ImageBitmap для загруженного растрового изображения. Таким образом, это заставляет меня думать, что дополнительное пространство как-то является частью растрового изображения. Однако, когда я загружаю одно и то же изображение в Webview, свободного места не остается.

Если у вас есть идеи, почему это может происходить, пожалуйста, дайте мне знать! Дайте мне знать, если вам нужна дополнительная информация, спасибо.

Редактировать: Вот мой код, получающий растровое изображение:

    InputStream in = null;
    Message msg = Message.obtain();
    msg.what = 1;
    try{
        in = openHttpConnection(_url);
        if (in != null)
        {
            Bitmap bit = BitmapFactory.decodeStream(in);
            Bundle b = new Bundle();
            b.putParcelable("bitmap", bit);
            msg.setData(b);
            in.close();
        }
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    _handle.sendMessage(msg);

И это то, что я использую для ImageView, я получаю растровое изображение из кода выше и:

imageV.setImageBitmap(comic);

Редактировать 2: Попробовав это с некоторыми другими изображениями с другого сайта, я обнаружил, что это пробел не всегда есть. Учитывая это, и, вероятно, нет ничего плохого в коде, есть ли какие-либо предложения по удалению этого дополнительного пространства, поскольку оно не отображается ни на реальном изображении, ни в Интернете, ни в веб-просмотре?

1 Ответ

0 голосов
/ 19 июня 2011

imageSize = din.readInt ();

imageName = din.readUTF ();

байт b [] = новый байт [imageSize];din.readFully (b);

bmImg = BitmapFactory.decodeByteArray (b, 0, b.length);

// Это работает для меня .... // din является объектом DataInputStream.

...