2016-04-06 30 views
0

Kullanıcının Parse.com'da bir diziye seçtiği resimleri yüklemeye çalışıyorum. Bunu yapamadım. Sorun nasıl kaydedilir ve bu fotoğrafları nasıl geri alabilirim? bu benim kod bu i çekilebilir gelen resimler kullandık böylece bir örnektir (fotoğrafları yükleyerek içindir.Parse.com dizisinden resim çekin

 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; 

} Bu diziyi ve resim almak için benim kod

olduğunu alıyorum boş ve ben resim elde veremiyoruz. ve ayrıca, i (yani belirli ham olarak) tüm dizi için bir döngü içinde ben ayrıştırma üzerinde olduğunu yapmak ve nasıl bir bitmap listede koydu.

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(); 
        } 
       } 
      }); 

cevap

1

Bitmap'i yüklemek için dizeye dönüştür:

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; 
    } 

ve bitmap için dizeyi dönüştürmek:

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

Eğer dosyaya dize kaydetmek ve sunucu tarafında veya kaydetmek ... sonra dize indirin ve tekrar bitmap dönüştürebilirsiniz ...

+0

Teşekkürler ama sorun, ayrıştırılmış bir diziden bir dosya nasıl indirileceğini bilmiyorum. –

İlgili konular