2016-06-12 10 views
1

Mein Ziel ist es, ein Bild vom Benutzer ausgewählt und füllen Sie eine Bildansicht damit. Wenn Sie dann auf eine Schaltfläche klicken, wird dieses Bild an eine Parse-Datenbank gesendet. Ich weiß, dass ich die Bildansicht in Byte-Array konvertieren muss, scheint aber nicht zu funktionieren.Wie kann ich eine Bildansicht in Android Studio in ein Byte-Array konvertieren?

Jede Hilfe wird sehr geschätzt. hier ist mein Code:

//send the imageviwew to parse database 

public void sendToParseBtn (View view){ 
    Bitmap bitmapImage = findViewById (R.id.imageView); 
    ImageView imageView = (ImageView) findViewById(R.id.imageView); 
    imageView.setImageBitmap(bitmapImage); 

    ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    bitmapImage.compress(Bitmap.CompressFormat.JPEG, 40, stream); 

    byte[] byteArray = stream.toByteArray(); 

    ParseFile file = new ParseFile("an.jpg",byteArray); 
    ParseObject object = new ParseObject("MyParseObject"); 
    object.put("imageFile", file); 

    object.saveInBackground(); 
} 
+0

„nicht zu funktionieren scheint“ keine gute Beschreibung des Problems ist, . Gibt es einen Fehler? Wenn ja, was? Wird der Code ausgeführt, hat jedoch ein unerwartetes Ergebnis? Wenn ja, was hast du erwartet und was hast du gesehen? – smarx

+0

thx smarx, alles funktioniert außer der Konvertierung in Bitmap. Ich denke, ich bekomme die Bildansichtsdaten nicht richtig. Weißt du wie ich die Bilddaten daraus auswählen kann? – RealBadCoder

+0

Sie haben immer noch nicht beschrieben, was falsch ist. Wie weißt du * "die Konvertierung in Bitmap" funktioniert nicht? – smarx

Antwort

13

Versuchen Sie, die Bildansicht in einem Bitmap-ziehbar Umwandlung zuerst, dann die byteArray erhalten:

ImageView imageView = (ImageView) findViewById(R.id.imageView); 
Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap(); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
byte[] imageInByte = baos.toByteArray(); 
//save your stuff 
+1

Sie, SIR, sind die besten !! Das hat perfekt funktioniert !!! Wie könnte ich dich jemals bezahlen? – RealBadCoder

+1

Ich empfehle, hinzuzufügen 'try { baos.close(); } catch (IOException e) { e.printStackTrace(); } 'bis zum Ende Ihres Codes – rocknow

Verwandte Themen