如何使用解析Android更新图像?

时间:2014-11-17 11:03:08

标签: android bitmap parse-platform sparse-file

我想从表1中获取图像以更新表2中的图像,这是我的代码

 ParseFile image= ParseUser.getCurrentUser().getParseFile("image");

    if(image==null)
    {

    }
    else
    {
        try {
            byte[] data=image.getData();


            Bitmap bmp = BitmapFactory
                  .decodeByteArray(
                          data, 0,
                          data.length);


          // Set the Bitmap into the
          // ImageView
          image1.setImageBitmap(bmp);




        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

此代码工作正常,它正确检索和设置图像现在我想在我的第二个表中上传这个“图像”我正在这样做

ParseQuery<ParseObject> query = ParseQuery.getQuery("XYZ");
          String user_id=ParseUser.getCurrentUser().getObjectId();
        query.getInBackground(user_id, new GetCallback<ParseObject>() {

            @Override
            public void done(ParseObject pdata, ParseException e) {
                // TODO Auto-generated method stub

                pdata.put("image",image); // this line throw NullPointerException
                pdata.saveInBackground();
            }
        });

我做错了什么人请帮帮忙?

1 个答案:

答案 0 :(得分:0)

你需要ParseFile对象。请尝试以下代码。 (它工作正常,我刚检查过它)

               byte[] pfArray = getBytesFromBitmap(bmp);
                ParseFile file = new ParseFile("abc.png", pfArray);
                // Upload the image into Parse Cloud
                file.saveInBackground(new SaveCallback() {

                    @Override
                    public void done(ParseException e) {
                        System.out.println("saved");

                    }
                });

public byte[] getBytesFromBitmap(Bitmap bitmap) {
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(CompressFormat.PNG, 70, stream);
        return stream.toByteArray();
    }
希望它有所帮助。