2013-11-26 54 views
2

我想從解析到ImageView的文件。我試圖通過「getDataInBackgound」得到但是當我調用這個方法'UI被卡住了,我得到最後一張圖片。獲取Parsefile到ImageView

ParseFile image = tableParseObjects.getParseFile(PARSE_IMAGES); 

        image.getDataInBackground(new GetDataCallback() { 

         @Override 
         public void done(byte[] data, ParseException e) { 
          Bitmap bitpic = BitmapFactory.decodeByteArray(data, 0, data.length); 
          ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
          bitpic.compress(Bitmap.CompressFormat.PNG, 100, stream); 
          vectorSample.setPic(bitpic); 

         } 
        }); 

回答

0

我想你必須使用Picasso或ImageLoader類加載圖像。我有同樣的疑問,我也使用了一個ParseImageView。這是我的代碼:

從parse.com檢索ParseFile(圖像)用的AsyncTask:

public class BackgroundQuery extends AsyncTask<Object, Void, Object> { 
    private String id; 

    public BackgroundQuery(String id) { 
     this.id = id; 
    } 

    @Override 
    protected Object doInBackground(Object... params) { 
     Object o = null; 
     try { 
      ParseQuery<ParseObject> query = ParseQuery.getQuery(params[0] 
        .getClass().getSimpleName()); 
      query.whereEqualTo("objectId", id); 
      List<ParseObject> result = query.find(); 

      if (result != null) { 
       for (ParseObject obj : result) { 
        o = obj.getParseFile("photo"); // Photo is the ParseFile 
       } 
      } 
     } catch (ParseException e) { 
      Log.e(TAG, e.getMessage()); 
     } 
     return o; 
    } 
} 

在佈局中使用這個像一個ImageView的:

<com.parse.ParseImageView 
     android:id="@id/imgv" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:adjustViewBounds="true /> 

使用這條線用於將圖片加載到ParseImageView中:

Picasso.with(this).load(parsefile.getUrl())。into(parseimageview);

另一種方法是快速加載更大的圖片,它使用ImageLoader。請檢查this

希望這個幫助:)