将Parsefile发送到ImageView

时间:2013-11-26 10:57:47

标签: java android parse-platform

我想从解析到ImageView获取文件。我试着通过“getDataInBackgound”但是当我调用这个方法时,UI被卡住了,我得到了最后一张图片。

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

                        }
                    });

1 个答案:

答案 0 :(得分:1)

我认为您必须使用Picasso或ImageLoader类加载图像。我有同样的疑问,我也使用了ParseImageView。这是我的代码:

使用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(本).load(parsefile.getUrl())代入(parseimageview);

使用ImageLoader快速加载更大图片的替代方法。请检查this

希望这有帮助:)