2013-03-29 12 views
5

Znalazłem wiele pytań dotyczących sposobu przycinania obrazu. Ale czy istnieje sposób, aby rozpocząć edycję obrazu za pomocą intencji. Próbowałem z com.android.camera.action.EDIT, ale to nie działa. Co chcę zrobić, to po kliknięciu na przycisku, rozpocząć działalność do edycji obrazu, jak ten na zdjęciu poniżej:Android: Edytuj intencję obrazu

enter image description here

To jak, kiedy otworzyć obraz z galerii i kliknij Edit z menu.

Odpowiedz

0

Znaleziono bibliotekę, która może być używana do tego i działa świetnie. Bibliotekę można znaleźć pod adresem here.

+0

Link już nie działa. – Matthew

+0

@Matthew I zaktualizowałem link, możesz go teraz zobaczyć – nikmin

+0

Ya, to naprawiłem. Dziękuję Ci. – Matthew

1
 Intent intent = new Intent("com.android.camera.action.CROP"); 
     intent.setDataAndType(yourimageuri, "image/*"); 
     intent.putExtra("crop", "true"); 
     intent.putExtra("aspectX", 1); 
     intent.putExtra("aspectY", 1); 
     intent.putExtra("outputX", 640); 
     intent.putExtra("outputY", 640); 
     intent.putExtra("scale", true); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outPath); 
     intent.putExtra("return-data", false); 
     intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); 
     intent.putExtra("noFaceDetection", true); 
     startActivityForResult(intent, CAMERA_CROP_RESULT); 
+1

Służy do przycinania obrazu. Chcę wszystkie opcje edycji, jak na powyższym zdjęciu: – nikmin

+0

spróbuj com.android.camera.action.EDITOR_CROP –

+0

Możesz przeglądać AndroidManifest.xml galerii Android 4.2 https://android.googlesource.com/platform/packages/apps/Gallery2/+ /android-cts-4.2_r2/AndroidManifest.xml, szukaj "com.android.camera.action" –

14
Intent editIntent = new Intent(Intent.ACTION_EDIT); 
editIntent.setDataAndType(uri, "image/*"); 
editIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
startActivity(Intent.createChooser(editIntent, null)); 
+5

Powinieneś dodać kilka wyjaśnień do swojej odpowiedzi! –

+0

Jeśli "startActivityForResult()", istnieją trzy możliwe wyniki edytora obrazu. Albo użytkownik edytuje obraz, a resultCode to "Activity.RESULT_OK", użytkownik nie wprowadza żadnych zmian i kliknięć "Gotowe" lub "Zapisz", w zależności od edytora, który zwraca kod wynikowy z 'Activity.RESULT_CANCELED', lub użytkownik naciska przycisk powrotu, który zwraca wartość resultCode parametru "Activity.RESULT_CANCELED". Dlaczego te dwie ostatnie opcje zwracają tę samą wartość resultCode? I jak możesz je odróżnić? – toobsco42

+0

sposób wysyłania obrazu nie działa! –

Powiązane problemy