2

这是更少的 android 问题和更多 Parse.com 问题,但我需要你的帮助:

我在 Parse.com 的应用程序的表格中有一个图像文件

文件没问题,我可以手动下载并观看。

但是当尝试使用我已经从服务器获取的 parseObject 获取它时,我得到“null”

代码:

  byte[] imageFile = parseObject.getBytes(Statics.COL_IMAGE_FILE);

我究竟做错了什么?

ps : 我可以在 parseObject "estimatedData" 字段中看到图像文件数据/链接,但无法获取他。

4

2 回答 2

8

如果Statics.COL_IMAGE_FILE是一File列,您应该执行以下操作来获取 byte[]:

ParseFile imageFile = (ParseFile)parseObject.get(Statics.COL_IMAGE_FILE);
imageFile.getDataInBackground(new GetDataCallback() {
  public void done(byte[] data, ParseException e) {
    if (e == null) {
      // data has the bytes for the image
    } else {
      // something went wrong
    }
  }
});
于 2013-01-25T00:28:10.447 回答
4

请参阅我的应用程序中的此代码段。外部查询返回文件关联的对象,内部查询从该对象返回文件。希望能帮助到你。

  ParseQuery<ParseObject> query = ParseQuery.getQuery("ClassName");
    query.whereEqualTo("Column", "Your_variable");
    query.getFirstInBackground(new GetCallback<ParseObject>() {
      public void done(ParseObject object, ParseException e) {
        if (object != null) {

            ParseFile file = (ParseFile)object.get("File_Coulumn");
            file.getDataInBackground(new GetDataCallback() {


            public void done(byte[] data, ParseException e) {
                if (e == null) {

                    bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);
                    //use this bitmap as you want

                } else {
                  // something went wrong
                }
              }
            });

        } else {
            Toast.makeText(getApplicationContext(), "Exception", Toast.LENGTH_SHORT) .show();

        }
      }
    });
于 2013-12-31T08:00:18.023 回答