Bild in Android zuschneiden

Ich möchte ein Bild zuschneiden, das ich ziemlich nützlich fand, aber irgendwie ist es so, als würde ich die nicht ausgewählten Bereiche nicht verdunkeln, also frage ich mich, ob jemand weiß wie? oder führe mich in die richtige Richtung? Das Online-Tutorial, das ich gefunden habe, zeigt, dass es den ausgewählten Bereich verdunkelt, aber wenn ich es verwende, wird es nicht. Bitte helfen Sie mir, vielen Dank und Entschuldigung für meine schlechten Englischkenntnisse.

Links zu dem Tutorial, das ich verwende.

Bildausschnitt-Tutorial 1

Bildausschnitt-Tutorial 2

Ich möchte, dass es so ist.

Ich möchte, dass es so ist

editButton.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Intent goEdit; goEdit = new Intent(PreviewActivity.this, CropImage.class); goEdit.putExtra("image-path", path); goEdit.putExtra("scale", true); goEdit.putExtra("fileName", nameFromPath); //finish(); checkEdit = true; startActivityForResult(goEdit,0); } }); 

EDIT Ich benutze diese Schaltfläche Listener, um in die cropImage-Datei durch Aufruf der class CropImage-Aktivität aufzurufen. Dies ist eine benutzerdefinierte Absicht nicht die Crop-function in android, aber ich denke, ist die Kopie davon, so dass es für alle Versionen zu unterstützen, aber wenn ich in es den ausgewählten Bereich nicht aufhellen und ich donno wo ist das Problem kann mich jemand führen? Danke Dies ist die Bibliothek, die ich benutze drioid4you Bild

   

    Können Sie die Standard-Crop-function von Android verwenden?

    Hier ist mein Code

     private void performCrop(Uri picUri) { try { Intent cropIntent = new Intent("com.android.camera.action.CROP"); // indicate image type and Uri cropIntent.setDataAndType(picUri, "image/*"); // set crop properties here cropIntent.putExtra("crop", true); // indicate aspect of desired crop cropIntent.putExtra("aspectX", 1); cropIntent.putExtra("aspectY", 1); // indicate output X and Y cropIntent.putExtra("outputX", 128); cropIntent.putExtra("outputY", 128); // retrieve data on return cropIntent.putExtra("return-data", true); // start the activity - we handle returning in onActivityResult startActivityForResult(cropIntent, PIC_CROP); } // respond to users whose devices do not support the crop action catch (ActivityNotFoundException anfe) { // display an error message String errorMessage = "Whoops - your device doesn't support the crop action!"; Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT); toast.show(); } } 

    erklären:

     final int PIC_CROP = 1; 

    an der Spitze.

    In OnActivity-Ergebnismethode, folgenden Code schreiben:

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PIC_CROP) { if (data != null) { // get the returned data Bundle extras = data.getExtras(); // get the cropped bitmap Bitmap selectedBitmap = extras.getParcelable("data"); imgView.setImageBitmap(selectedBitmap); } } } 

    Es ist ziemlich einfach für mich zu implementieren und zeigt auch dunkle Bereiche.

    Ich habe eine wirklich coole Bibliothek gefunden, probiere das aus. das ist wirklich glatt und einfach zu bedienen.

    https://github.com/TakuSemba/CropMe

    ich hoffe es geht dir gut. Sie können meinen Code verwenden, um Bild zu beschneiden. Sie müssen nur eine class XMl und diese class in Ihre XMl und java classn verwenden. Bild zuschneiden Sie können das ausgewählte Bild in viele Optionen in Kreis und Quadrat zuschneiden. hoffe voll und ganz, dass es für dich funktioniert. denn das ist für dich völlig überschaubar und du kannst es je nach dir ändern.

    viel Spaß bei der Arbeit 🙂

    Diese Bibliothek: Android-Image-Cropper ist sehr leistungsfähig zu CropImages. Es hat zu dieser Zeit 3.731 Sterne auf GitHub.

    Sie werden Ihre Bilder mit ein paar Zeilen Code beschneiden.

    1 – Fügen Sie die Abhängigkeiten in buid.gradle hinzu (Modul: app)

     compile 'com.theartofdev.edmodo:android-image-cropper:2.7.+' 

    2 – Fügen Sie die Berechtigungen in AndroidManifest.xml hinzu

       

    3 – Fügen Sie CropImageActivity in AndroidManifest.xml hinzu

      

    4 – Starten Sie die Aktivität mit einem der folgenden Fälle, abhängig von Ihren Anforderungen.

     // start picker to get image for cropping and then use the image in cropping activity CropImage.activity() .setGuidelines(CropImageView.Guidelines.ON) .start(this); // start cropping activity for pre-acquired image saved on the device CropImage.activity(imageUri) .start(this); // for fragment (DO NOT use `getActivity()`) CropImage.activity() .start(getContext(), this); 

    5 – Holen Sie sich das Ergebnis in onActivityResult

     @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) { CropImage.ActivityResult result = CropImage.getActivityResult(data); if (resultCode == RESULT_OK) { Uri resultUri = result.getUri(); } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) { Exception error = result.getError(); } } } 

    Sie können mehrere Anpassungen vornehmen, indem Sie das Seitenverhältnis oder die Form auf RECTANGLE, OVAL und vieles mehr einstellen.