对于我的ParseUsers,有一列名为“ profilePicture”的ParseFile类型,给定一个用户,我尝试使用以下代码检索ParseFile并将其转换为Bitmap:
ParseUser user = ParseUser.getCurrentUser();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap image = null;
ParseFile profilePicture = user.getParseFile("profilePicture");
System.out.println("DATA: " + profilePicture.isDataAvailable());
try {
InputStream inputStream = profilePicture.getDataStream();
image = BitmapFactory.decodeStream(inputStream, null, options);
} catch (ParseException e) {
e.printStackTrace();
}
return image;
获取ParseFile可以正常工作,但是即使我手动检查该列以确保该特定用户的“ profilePicture”列中没有图像文件,每次isDataAvailable()都将返回false。这可能是什么原因?
最佳答案
使用.getDataInBackground
方法并在done()
方法中解码文件
profilePicture.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
// Do your magic
}
});