我想从解析到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);
}
});
答案 0 :(得分:1)
我认为您必须使用Picasso或ImageLoader类加载图像。我有同样的疑问,我也使用了ParseImageView。这是我的代码:
使用asynctask从 在你的布局中使用它像ImageView: 使用此行在ParseImageView中加载图片: Picasso.with(本).load(parsefile.getUrl())代入(parseimageview); 使用ImageLoader快速加载更大图片的替代方法。请检查this。 希望这有帮助:)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;
}
}
<com.parse.ParseImageView
android:id="@id/imgv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true />