2015-06-16 11 views
6

L'immagine viene prelevata come tipo BLOB dall'API. E, io sono il risparmio come segue,Verifica immagine caricata a metà o non in Android

public static void setOptimalImage(Context ctx, File file, ImageView iv, 
      Point size) { 
     BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inJustDecodeBounds = true; 
     BitmapFactory.decodeFile(file.getPath(), options); 
     if (options.outHeight > 0 && options.outWidth > 0) { 
      if (size == null) { 
       size = new Point(); 
       WindowManager wm = (WindowManager) ctx 
         .getSystemService(Context.WINDOW_SERVICE); 
       wm.getDefaultDisplay().getSize(size); 
      } 
      options.inSampleSize = Utils.calculateInSampleSize(options, size.x, 
        size.y); 
      options.inJustDecodeBounds = false; 
      try { 
       iv.setImageBitmap(BitmapFactory.decodeFile(file.getPath(), 
         options)); 
      } catch (OutOfMemoryError oome) { 
       Log.e(Utils.class.getName(), 
         oome.getMessage() == null ? "OutOfMemory error: " 
           + file.getName() : oome.getMessage()); 
      } 
     } 
    } 

Ora, il problema che sto affrontando è,

Quando sono salvarlo, a volte l'immagine è il risparmio solo half.Now, la mia domanda è,

  • C'è un modo per controllare l'immagine dal percorso del file è a metà carica (che significa danneggiato)?

Edit:

  • sto scaricando un'immagine dal server. Nel frattempo, ho perso la mia connessione di rete. In tal caso, la mia immagine sta scaricando la metà. Posso ottenere quelle immagini danneggiate a livello di codice? O qualche idea su come gestire in questo caso?

Qualsiasi aiuto sarebbe molto apprezzato.

Grazie.

Immagine Applicazione per Riferimento:

enter image description here

+0

@Manu È necessario aggiornare la galleria dopo aver salvato l'immagine http://stackoverflow.com/questions/15837485/how-can-i-update-the-android-gallery-after-a-photo e dopo averlo rinfrescato bisogno di impostare l'immagine –

risposta

0

penso che si guarda in direzione errata di rilevare immagini corrotte. Sarebbe facile gestire i bitmap caricati (o semi-caricati) usando API e richieste. Puoi anche avere un file (o anche un database migliore), nel quale avrai informazioni sulle immagini scaricate.

Vedo più assegni, "l'immagine è stata scaricata?":

  • API dovrebbe dirvi cosa ci si aspetta dimensioni dell'immagine che si desidera scaricare . Dopo aver completato il caricamento, è necessario controllare le dimensioni e confrontare uguale a
  • È possibile rilevare con quale codice di errore è stata completata la richiesta. Se è finito con il codice di successo è possibile contrassegnare l'immagine viene caricata

E dopo durante la visualizzazione è possibile rilevare quali immagini sono completamente caricate.

0

Idealmente si dovrebbe rendere l'API restituire un checksum (ad esempio MD5) con ogni file. È quindi possibile generare un checksum utilizzando lo stesso algoritmo di Android per il file scaricato e confrontarlo con quello restituito dall'API. Esaminare la classe java.security.MessageDigest per i dettagli su come generare un checksum.

Problemi correlati