2

Onclick of my Imageview,I want to crop the background image of the imageview which is in drawable folder of my app by default cropping technique of android gallery and the cropped image should set in same once it is cropped.

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    final Intent intent = new Intent("com.android.camera.action.CROP");
    intent.setDataAndType(Uri.parse("android.resource://com.example.croppingactivity/drawable/apple"), "image/*");
    intent.putExtra("outputX", 400);
    intent.putExtra("outputY", 400);
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    intent.putExtra("scale", true);
    intent.putExtra("crop", true);
    //intent.putExtra("output", Uri.parse("android.resource://com.example.croppingactivity/drawable/apple"));
    startActivityForResult(intent, 1);
}

and this is my stacktrace.

12-04 10:21:28.812: E/AndroidRuntime(2553): FATAL EXCEPTION: main
12-04 10:21:28.812: E/AndroidRuntime(2553): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.GET_CONTENT dat=android.resource://com.example.croppingactivity2130837504 typ=image/* (has extras) }
12-04 10:21:28.812: E/AndroidRuntime(2553):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at android.app.Activity.startActivityForResult(Activity.java:3370)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at android.app.Activity.startActivityForResult(Activity.java:3331)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at com.example.croppingactivity.MainActivity$1.onClick(MainActivity.java:52)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at android.view.View.performClick(View.java:4202)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at android.view.View$PerformClick.run(View.java:17340)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at android.os.Handler.handleCallback(Handler.java:725)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at android.os.Looper.loop(Looper.java:137)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at android.app.ActivityThread.main(ActivityThread.java:5039)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at java.lang.reflect.Method.invokeNative(Native Method)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at java.lang.reflect.Method.invoke(Method.java:511)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-04 10:21:28.812: E/AndroidRuntime(2553):     at dalvik.system.NativeStart.main(Native Method)

but it doesn't work.I am getting activity not found Exception. What I am doing wrong please help me.

AndroidCrazy
  • 334
  • 8
  • 23

1 Answers1

1

Well, this is the code I'm using to do such thing. Maybe you can try it :

final Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");

intent.putExtra("crop", "true");

intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);

intent.putExtra("outputX", 400);
intent.putExtra("outputY", 400);
// Scale the image down to 400 x 400
intent.putExtra("scale", true);

intent.putExtra("windowTitle", "My_title");
    // You need to use a temporary file for cropping to work
    File tempFile = File.createTempFile("crop", "png",
              myActivity.getCacheDir());
mSavedUri = Uri.fromFile(tempFile);
intent.putExtra("output", mSavedUri);
intent.putExtra("outputFormat", "PNG");

profileActivity.startActivityForResult(intent, INTENT_PICK_PICTURE);

I guess you'll have to change intent.setType(...) to intent.setDataAndType(Uri.parse("android.resource://..."), "image/*")

Orabîg
  • 11,718
  • 6
  • 38
  • 58
  • Hum, that's weird. Is your `onClick()` method inside your Activity's class ? I'd like to know if you invoke `startActivityForResult` on the current activity instance, or on another objet... – Orabîg Nov 30 '12 at 11:11
  • sorry for the late reply.onClick is inside my activity and invoking startActivityForResult in the same activity – AndroidCrazy Dec 03 '12 at 02:37
  • That's really strange. Are you absolutly positive that the ActivityNotFoundException occurs on the startActivityForResult ? Can you post the stacktrace ? – Orabîg Dec 03 '12 at 05:53
  • sorry for the late reply again i posted my stacktrace along with my question.pls check.Thanks – AndroidCrazy Dec 04 '12 at 04:55