Ich konnte ein Bild mit einer Kamera aufnehmen oder aus einer Galerie aufnehmen und es mit diesem Code in einem ImageView anzeigen. Was ich jetzt tun muss, ist dieses Bild zu verwenden und es in Parse zu laden. Ich habe hier und dort gegoogelt, um das zu tun, und ich habe nicht den richtigen Weg gefunden, es zu tun. Kann mir bitte jemand dabei helfen? Ist es möglich, das Bild von ImageView hochzuladen? Vielen Dank.Wie lade ich ein Bild zu Parse in Android hoch?
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
Vielen Dank. das funktioniert. Ich wusste nicht, dass dies die Quelle meiner Bilder ist, da das Format sehr unterschiedlich aussieht. Ich war in der Lage, den Upload-Code unter dem Fall in der onActivityForResult am unteren Rand zu platzieren. Ist es möglich, dies außerhalb von ActivityForResult zu tun? Ich denke, ich muss es in OnCreate tun, damit ich andere Informationen (Benutzername und Zeug) mit einem Klick analysieren kann, so dass sie zum selben Objekt/Klasse gehen. und dieser Code bedeutet, wenn ich ein Bild aus einer Galerie ausgewählt, dann änderte ich meine Meinung, stattdessen ein Bild zu machen, werde ich 2 Bilder hochladen. Wie mache ich das, also lade ich nur 1 Bild hoch? –
hi, ja, du kannst den Upload-Code in seiner eigenen Funktion verwenden, dann kannst du ihn von überall aus referenzieren. Zum Beispiel: private myUploading() {// Konvertiere es in Byte ByteArrayOutputStream stream = new ByteArrayOutputStream(); // Komprimiere Bild auf eine niedrigere Qualitätsskala 1 - 100 yourbitmap.compress (Bitmap.CompressFormat.PNG, 100, stream); Byte [] image = stream.toByteArray(); ...} Und in deinem onActivityResult vor jeder Pause; Sie rufen den Upload mit: myUploading(); Voilà. – mourad
Auch war meine Antwort die eine? Ich wollte so sehr die grüne Markierung. – mourad