2016-01-14 4 views
0

Я загружаю изображение с веб-сайта, которое будет отображаться на изображении.Невозможно нарисовать растровое изображение, так как оно загружено на холст

я хочу, чтобы изображение появилось на ImageView , как он будет загружен и не ждать, пока все изображения будут загружены. то, что я имею в виду, если изображение 10000 байт и первые байты для загрузки являются 1024, то изображение должно быть построено из 1024 байтов и формируют часть загружаемых изображений и нарисуйте его на холсте

byte[] buffer =new byte[1024]; 
       int bytesRead = -1; 
       byte[] writtenOnes; 



       while((bytesRead = inputStream.read(buffer)) != -1){ 
        fileOutputStream.write(buffer, 0, bytesRead); 
        fileOutputStream.flush(); 
        filebytes = Files.toByteArray(media); 
        status = (100 * filebytes.length)/contentLength; 
        publishProgress(status); 

       } 
       fileOutputStream.flush(); 

       fileOutputStream.close(); 
       inputStream.close(); 

       if(media.length() == contentLength){ 
        d(" WELL DONE, FILECOMPLETLY DOWNLOADED. SIZE IS "+ contentLength); 
       }else{ 
        d(" file not completely downloaded. bytes remaining "+(contentLength -media.length())); 
       } 
      } 
      connection.disconnect(); 
      return mediaFile; 
     }catch(Exception exc){ 
      exc.printStackTrace(); 
      return ""; 
     } 

    } 

    protected void onProgressUpdate(Integer... status) { 
     int state = status[0]; 
     incompleteBitmap =BitmapFactory.decodeByteArray(filebytes, 0, filebytes.length); 

     d(" status is "+ state); 
     canvas.drawBitmap(incompleteBitmap,0,0,new Paint(Paint.FILTER_BITMAP_FLAG)); 
     progressBar.setProgress(state); 
    } 

Я не могу создать растровое изображение из загруженных байтов. я получаю NullpointerException, когда я пытаюсь получить сформированную растровую карту по методу onProgressUpdate()

Вопрос: есть ли способ, которым я могу это достичь?

ответ

0

Если изображения находятся в вашем домене, у меня были отличные результаты, достигающие этого эффекта, используя библиотеку изображений Fresco, которая поддерживает прогрессивный формат JPEG. Однако это не может быть желательным, если вы ищете полное решение ванили или уже используете другую библиотеку просмотра изображений или если изображения и формат outwith элемента управления:

Fresco progressive JPEG documentation

+0

все под моим контролем, включая изображение формат и сервер, который получает изображение. позвольте мне попробовать ваше решение, и я расскажу вам результаты –

+0

У меня проблема с программной установкой ширины и высоты моего упрощенного обзора. и я не вижу никакого метода в классе GenericDraweeHierachy, и когда я использую методы android, это похоже на то, что они не были реализованы. 'Simpledrawee.getLayoutParams(). Ширина = 350'. вы столкнулись с такой проблемой? –

Смежные вопросы