2014-10-10 11 views
8

C'è un modo per archiviare file di immagini in Firebase utilizzando Java API?Posso archiviare file di immagini in Firebase utilizzando l'API Java

+0

Come si fa a convertire nuovamente a una bitmap? –

+2

@Binghammer è semplice. byte [] imageAsBytes = Base64.decode (imageFile, Base64.DEFAULT); Bitmap bmp = BitmapFactory.decodeByteArray (imageAsBytes, 0, imageAsBytes.length); – skabir

+2

* Firebase ha appena rilasciato una nuova funzione chiamata [Firebase Storage] (https://firebase.google.com/docs/storage/). Ciò consente di caricare immagini e altri dati non JSON in un servizio di archiviazione dedicato. Si consiglia vivamente di utilizzarlo per memorizzare le immagini, invece di memorizzarle come dati codificati Base64 nel database JSON. * –

risposta

11

Provare a utilizzare questo frammento:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.chicken);//your image 
ByteArrayOutputStream bYtE = new ByteArrayOutputStream(); 
bmp.compress(Bitmap.CompressFormat.PNG, 100, bYtE); 
bmp.recycle(); 
byte[] byteArray = bYtE.toByteArray(); 
String imageFile = Base64.encodeToString(byteArray, Base64.DEFAULT); 

e per il recupero

public Bitmap stringToBitMap(String encodedString){ 
    try { 
     byte [] encodeByte=Base64.decode(encodedString,Base64.DEFAULT); 
     Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length); 
     return bitmap; 
    } catch(Exception e) { 
     e.getMessage(); 
     return null; 
    } 
} 
+3

Che ne dici di visualizzare l'immagine dalla stringa imageFile? –

+3

Quanto segue dovrebbe aiutare a visualizzare la stringa codificata come bitmap. byte [] decodedString = Base64.decode (imageFileString, Base64.DEFAULT); Bitmap bitmap = BitmapFactory.decodeByteArray (decodedString, 0, decodedString.length); imageView.setImageBitmap (bitmap); – ernestkamara

Problemi correlati