我已经能够使用相机拍摄照片或从相册中取出并使用此代码在ImageView中显示它。我现在需要做的是使用该图片并将其上传到Parse。我一直在这里和那里搜索,我还没有找到正确的方法来做到这一点。有人可以帮助我吗?有没有可能从ImageView上传图片?谢谢。如何将图像上传到解析在android中?
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
非常感谢。这工作。由于格式看起来非常不同,我没有意识到这些是我的图像的来源。我能够将上传代码放在底部的onActivityForResult中。有没有可能在onActivityForResult之外做到这一点?我想我需要在onCreate中做这件事,这样我就可以在一次点击中解析其他信息(用户名和东西),以便它们进入相同的对象/类。 这个代码的意思是,如果我从一个画廊中挑选了一个图片,然后改变主意拍照,我会上传2张图片。我如何做,所以我只上传1张图片? –
嗨,是的,你可以在自己的功能中使用上传代码,那么你可以从任何你喜欢的地方引用它。例如:private myUploading(){//将其转换为字节ByteArrayOutputStream stream = new ByteArrayOutputStream(); //压缩图像以降低质量1 - 100 yourbitmap.compress(Bitmap.CompressFormat.PNG,100,stream); byte [] image = stream.toByteArray(); ...}并在每次休息前的onActivityResult中;你打电话给上传:myUploading();瞧。 – mourad
也是我的答案?我非常想要绿色标志。 – mourad