如何在Android中将图像上传到Parse?

sta*_*oso 5 android image-uploading android-image android-imageview parse-platform

我已经能够使用相机拍摄照片或从画廊中取出并使用此代码在ImageView中显示它.我现在需要做的是使用该图片并将其上传到Parse.我一直在谷歌上搜索,我没有找到正确的方法来做到这一点.有人可以帮我这个吗?是否可以从ImageView上传图像?谢谢.

protected Button mFromCamera;
protected Button mFromGallery;
protected ImageView mImageView;

private static final int CAMERA_REQUEST = 1888;
private static final int SELECT_PHOTO = 100;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


//Initialize ImageView
mImageView = (ImageView) findViewById(R.id.ImgPrev);
//Initialize Camera
mFromCamera = (Button) findViewById(R.id.FromCamera);

//use camera
mFromCamera.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(cameraIntent, CAMERA_REQUEST);
    } //use camera end

});

//initialize button
mFromGallery = (Button) findViewById(R.id.FromGallery);

//pick a photo
mFromGallery.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        Intent photoPickerIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        photoPickerIntent.setType("image/*");
        startActivityForResult(photoPickerIntent, SELECT_PHOTO);
    }
});//pick a photo end
}



//previewing Image
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
    //from the gallery
    case SELECT_PHOTO:
        if (requestCode == SELECT_PHOTO && resultCode == RESULT_OK && null!= data) {
            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };

            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            cursor.close();

            mImageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
        }
        break;
    //from the camera
    case CAMERA_REQUEST:
        if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
            Bitmap photo = (Bitmap) data.getExtras().get("data");
            mImageView.setImageBitmap(photo);
        }
        break;
}
}//Preview Image End
Run Code Online (Sandbox Code Playgroud)

mou*_*rad 3

阅读你的答案:

\n\n
\n

我已经按照您之前的代码进行操作了。我能够上传图像进行解析。但我不知道如何将可绘制源切换为来自相机/画廊或图像视图的图像。\xe2\x80\x93 斯坦利·桑托索

\n
\n\n

到 :

\n\n
\n

阿布舍克·班萨尔

\n
\n\n

我了解您的问题不是解析您的图像?

\n\n

尝试回答你的问题:

\n\n
\n

我不知道如何将可绘制源切换为来自相机/画廊或图像视图的图像。

\n
\n\n

1 - R.drawable.androidbegin 似乎是你的问题,但事实是你已经在代码中解析了位图:

\n\n

来自画廊->

\n\n
mImageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));\n
Run Code Online (Sandbox Code Playgroud)\n\n

从相机 ->

\n\n
Bitmap photo = (Bitmap) data.getExtras().get("data");\n
Run Code Online (Sandbox Code Playgroud)\n\n

2 - 所以我建议在代码开头声明一个 Bitmap 类型的变量

\n\n
private Bitmap yourbitmap;\n
Run Code Online (Sandbox Code Playgroud)\n\n

3 - 然后在代码中为图库和相机分配位图并使用它来解析它。

\n\n
...\nyourbitmap = BitmapFactory.decodeFile(picturePath);\n...\nyourbitmap = (Bitmap) data.getExtras().get("data");\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n

4 - 最后你可以像这样使用你的位图:

\n\n
//    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),\n//                            R.drawable.androidbegin);\n    // Convert it to byte\n                    ByteArrayOutputStream stream = new ByteArrayOutputStream();\n                    // Compress image to lower quality scale 1 - 100\n                    yourbitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);\n                    byte[] image = stream.toByteArray();\n           ...\n
Run Code Online (Sandbox Code Playgroud)\n