2016-09-19 46 views
0

对于我ParseUsers,有一个名为“profilePicture”型ParseFile我尝试检索ParseFile,并将其转换用下面的代码为位图用户一列,并给出:故障检索ParseFile为ParseUser

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工作正常,但每次isDataAvailable()都会返回false,即使我手动检查列以确保该特定用户的“profilePicture”列中存在图像文件。这可能是什么原因?

回答

1

使用.getDataInBackground方法,并在done()方法解码文件

profilePicture.getDataInBackground(new GetDataCallback() { 
    @Override 
    public void done(byte[] data, ParseException e) { 
     // Do your magic 
    } 
}); 
+0

我希望能够在活动的onCreate()阶段显示图片,但如果我用getDataInBackground的图片将只在onCreate()完成后检索,如果我尝试使用getData,则数据尚不可用。有关如何解决这个问题的任何建议? – myrocks2

+0

整个想法不是阻止你的onCreate()。为什么你认为你必须在onCreate()完成之前拥有图像? –

+0

因为我想让用户可以看到所有用户信息,其中包括用户的个人资料图片。 – myrocks2