2016-06-12 13 views
1

私の目標は、ユーザーが選択した画像を取得し、画像ビューにその画像を設定することです。次に、ボタンをクリックすると、その画像がParseデータベースに送られます。私はバイト配列に画像ビューを変換する必要があることを知っているが、動作していないようです。どのようにAndroid Studioで画像ビューをバイト配列に変換できますか?

すべてのヘルプは高く評価されます。 は、ここに私のコードです:

//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

「は動作していないように」 。エラーはありますか?もしそうなら、何?コードは実行されますが、予期しない結果がありますか?もしそうなら、あなたは何を期待していましたか、何を見ましたか? – smarx

+0

thx smarx、ビットマップへの変換以外はすべて動作します。私はイメージビューのデータを正しく取得していないと思う。どのようにしてイメージデータを選択することができますか? – RealBadCoder

+0

あなたは何が間違っているのかまだ説明していません。どのように*「ビットマップへの変換」が機能していないのですか? – smarx

答えて

13

まずByteArrayの取得ビットマップ描画可能に画像表示を変換してみてください。問題の偉大な説明ではありません

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

あなた、SIRは最高です!それは完璧に働いた!どうすれば私はあなたに払うことができますか? – RealBadCoder

+1

私は追加することをお勧めします 'try { baos.close(); } catch(IOException e){ e.printStackTrace(); } 'あなたのコードの最後に – rocknow

関連する問題