Ich versuche ein (welches ich aus der Galerie ausgewählt oder von meiner Kamera genommen habe) zu beschneiden und es zu übergeben zu einem anderen activity
, die die image
zu meinem Firebase-Speicher hochladen sollte.Image-Crop-Activity sendet Image-Uri nicht zum Empfang von Activity (Android-Image-Cropper)
Zuerst (ohne Bildausschnitt) lief alles gut. Ich konnte die image
übergeben und hochladen ... aber nachdem ich den Image-Crop-Code zu meinem onActivityResult
hinzugefügt habe, schließt er einfach die imageCropActivity, nachdem ich 'crop' gedrückt habe und springt zurück zu meiner MainActivity.
Ich habe es versucht, aber ich kann wirklich nicht herausfinden, warum es das tut. Vielleicht verpasse ich etwas. Irgendwelche Ideen?
Für die Bildbeschneidungs ich dieses libary bin mit: https://github.com/ArthurHub/Android-Image-Cropper
Hauptaktivität
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mImageUri_gallery = data.getData();
mImageUri_camera = data.getData();
if (requestCode == 100 && resultCode == RESULT_OK) {
CropImage.activity(mImageUri_gallery)
.setGuidelines(CropImageView.Guidelines.ON)
.start(this);
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri resultUriGallery = result.getUri();
Intent intentGallery = new Intent(MainActivity.this, ImagePostActivity.class);
intentGallery.putExtra("image-uri", resultUriGallery.toString());
startActivity(intentGallery);
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
}
} else if (resultCode != RESULT_CANCELED && data != null) {
if (requestCode == 200 && resultCode == RESULT_OK) {
CropImage.activity(mImageUri_camera)
.setGuidelines(CropImageView.Guidelines.ON)
.start(this);
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri resultUriCamera = result.getUri();
Intent intentCamera = new Intent(MainActivity.this, ImagePostActivity.class);
intentCamera.putExtra("image-uri", resultUriCamera.toString());
startActivity(intentCamera);
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
}
}
}
}
ImagePostActivity
public class ImagePostActivity extends AppCompatActivity {
public static TextView txt_btn_post;
public static EditText mPostTitle;
public static ImageView imagePostPreview;
private StorageReference mStorage;
private DatabaseReference mDatabase;
private ProgressDialog mProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_post);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mStorage = FirebaseStorage.getInstance().getReference();
mDatabase = FirebaseDatabase.getInstance().getReference().child("Test_Stream_Uploads");
mProgress = new ProgressDialog(this);
// mPostTitle = (EditText) findViewById(R.id.mPostTitle);
imagePostPreview = (ImageView) findViewById(R.id.imagePostPreview);
Intent intent = getIntent();
mImageUri_gallery = Uri.parse(intent.getStringExtra("image-uri"));
imagePostPreview.setImageURI(mImageUri_gallery);
mImageUri_camera = Uri.parse(intent.getStringExtra("image-uri"));
imagePostPreview.setImageURI(mImageUri_camera);
txt_btn_post = (TextView) findViewById(R.id.txt_btn_post);
txt_btn_post.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startPosting();
}
});
}
private void startPosting() {
mProgress.setMessage("Bild wird hochgeladen...");
mProgress.show();
if (mImageUri_gallery != null) {
StorageReference filepath = mStorage.child("Stream_Image").child(mImageUri_gallery.getLastPathSegment());
filepath.putFile(mImageUri_gallery).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri downloadUrl = taskSnapshot.getDownloadUrl();
Intent intent = new Intent(getBaseContext(), MainActivity.class);
DatabaseReference newPost = mDatabase.push();
newPost.child("image").setValue(downloadUrl.toString());
mProgress.dismiss();
startActivity(intent);
}
});
}
}
}
Danke! Ich werde es ausprobieren und Sie wissen lassen, ob es für mich funktioniert – Ron
@Ron hat es funktioniert? –