Bonjour,

Dans mon application, l'utilisateur prend une photo et il a la possibilité de la redimensionner ! J'ai trouvé sur le net la possibilité de cropper une image en la sélectionnant dans la galerie

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
		 Intent photoPickerIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
		 photoPickerIntent.setType("image/*");
		 photoPickerIntent.putExtra("crop", "true");
		 photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri());
		 photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
		 startActivityForResult(photoPickerIntent, 0);
Mais je ne veux pas que l'utilisateur puisse choisir la photo, mais que sa soit directement la photo prise ultérieurement.

J'ai trouvé ce bout de code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
File mFile=new File(Environment.getExternalStorageDirectory().getAbsolutePath() +
				    	        "/DCIM/Camera/1337169897869.jpg");
		            	 Intent intent = new Intent( "com.android.camera.action.CROP" );
		            	 intent.setType( "image/*" );
		            	intent.setClassName("com.android.camera", "com.android.camera.CropImage");
		            	intent.setData(Uri.fromFile(mFile));
		            	intent.putExtra("outputX", 100);
		            	intent.putExtra("outputY", 80);
		            	intent.putExtra("aspectX", 100);
		            	intent.putExtra("aspectY", 80);
		            	intent.putExtra("scale", true);
		            	intent.putExtra("noFaceDetection", true);
		            	intent.putExtra("output", Uri.parse(mFile.toString()));
		            	startActivityForResult(intent, 0);
Seulement il me met une erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
05-21 10:23:41.164: E/AndroidRuntime(3908): FATAL EXCEPTION: main
05-21 10:23:41.164: E/AndroidRuntime(3908): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.android/com.test.android.CropimgActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.camera/com.android.camera.CropImage}; have you declared this activity in your AndroidManifest.xml?
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1817)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1833)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.ActivityThread.access$500(ActivityThread.java:124)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1026)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.os.Handler.dispatchMessage(Handler.java:99)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.os.Looper.loop(Looper.java:132)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.ActivityThread.main(ActivityThread.java:4134)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at java.lang.reflect.Method.invokeNative(Native Method)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at java.lang.reflect.Method.invoke(Method.java:491)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at dalvik.system.NativeStart.main(Native Method)
05-21 10:23:41.164: E/AndroidRuntime(3908): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.camera/com.android.camera.CropImage}; have you declared this activity in your AndroidManifest.xml?
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1504)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.Instrumentation.execStartActivity(Instrumentation.java:1382)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.Activity.startActivityForResult(Activity.java:3145)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at com.test.android.CropimgActivity.onCreate(CropimgActivity.java:48)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.Activity.performCreate(Activity.java:4411)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1781)
05-21 10:23:41.164: E/AndroidRuntime(3908): 	... 11 more
Je n'ai rien ajouté dans mon Manifest mais il me semble que c'est un appel implicite a une activité d'Android. je ne sais pas pourquoi il ne trouve pas l'activité.J'ai vu que sa pouvait être lié aux versions d'android (2.x), mais je développe en 3.0