2016-04-06 16 views
0

Parse.comの配列にユーザーが選択した画像をアップロードしようとしています。 私はそれを行うことができませんでした。問題はどうやって保存するのか、そしてそれらの写真を元に戻すにはどうすればいいですか? この写真をアップロードするための私のコードでは、(これは一例ですので、私は描画可能から写真を使用していますParse.comアレイから画像を取得

 Button btnadd = (Button) findViewById(R.id.btnadd); 
    btnadd.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Bitmap bitmap; 
      bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.one); 
      myArrayOfParseFiles.add(add(bitmap)); 
      bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.two); 
      myArrayOfParseFiles.add(add(bitmap)); 
      bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.three); 
      myArrayOfParseFiles.add(add(bitmap)); 

      ParseObject object = ParseObject.create("Pictures"); 
      object.add("pic", myArrayOfParseFiles); 
      object.put("username", ParseUser.getCurrentUser().getUsername()); 
      object.saveInBackground(); 
     } 
    }); 
    Button btnnext = (Button) findViewById(R.id.btnnext); 
    btnnext.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intentObj = new Intent(Welcome.this, Show.class); 
      startActivity(intentObj); 
      finish(); 
     } 
    }); 
} 
    public ParseFile add(Bitmap pic){ 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     pic.compress(Bitmap.CompressFormat.PNG, 100, stream); 
     byte[] image = stream.toByteArray(); 
     ParseFile file = new ParseFile(image); 
     file.saveInBackground(); 
    return file; 

}

をこれは、アレイと画像を取得するための私のコードで私は取得しています。ヌルと私は絵を取得できませんよ。そしてまた、私は、アレイ全体のためのループに私は(その特定の生中)パースであり、ビットマップリストにそれを置くことをどのように行うのですか。

ParseQuery<ParseObject> query = ParseQuery.getQuery("Pictures"); 
      query.whereEqualTo("username", ParseUser.getCurrentUser().getUsername()); 
      query.getFirstInBackground(new GetCallback<ParseObject>() { 
       @Override 
       public void done(ParseObject object, ParseException e) { 
        List<ParseFile> list = object.getList("pic"); 
        try { 
         URL url = new URL(list.get(0).getUrl()); 
         Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
         picone.setImageBitmap(bmp); 
        } catch (MalformedURLException e1) { 
         e1.printStackTrace(); 
        } catch (IOException e1) { 
         e1.printStackTrace(); 
        } 
       } 
      }); 

答えて

1

ビットマップを文字列に変換してアップロード:

private String getStringFromBitmap(Bitmap bitmapPicture) { 

     final int COMPRESSION_QUALITY = 100; 
     String encodedImage; 
     ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream(); 
     bitmapPicture.compress(Bitmap.CompressFormat.PNG, COMPRESSION_QUALITY, 
       byteArrayBitmapStream); 
     byte[] b = byteArrayBitmapStream.toByteArray(); 
     encodedImage = Base64.encodeToString(b, Base64.DEFAULT); 
     return encodedImage; 
    } 

とビットマップにあなたの文字列を変換:

private Bitmap getBitmapFromString(String jsonString) { 
    byte[] decodedString = Base64.decode(jsonString, Base64.DEFAULT); 
    Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
    return decodedByte; 
} 

ファイルで、あなたの文字列を保存し、サーバ側に保存したり...と、文字列をダウンロードして、それが再びビットマップに変換することができます...

+0

ありがとうございます。問題は、解析する際に配列からファイルをダウンロードする方法がわかりません。 –

関連する問題