2012-11-30 57 views
1

Onclick我的Imageview,我想裁剪我的應用程序的可繪製文件夾中的圖像視圖的背景圖像默認裁剪技術的Android圖庫和裁剪圖像應設置相同一旦它被裁剪。通過android畫廊裁剪方法裁剪可拖動的圖像

@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); 
} 

這是我的堆棧跟蹤。

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) 

但它不起作用。我沒有找到活動異常。 我做錯了,請幫助我。

+0

http://kyogs.blogspot.in/2012/08/image-split-and-merge.html請參閱這篇文章。其對你的評論有幫助 – kyogs

+0

感謝您的評論。但我不想以這種方式裁剪。我想要像android圖庫那樣裁剪。 – AndroidCrazy

+0

也許您的設備缺少修剪功能的應用程序。 –

回答

0

嗯,這是我用來做這種事情的代碼。也許你可以試試:

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); 

我想你必須改變intent.setType(...)intent.setDataAndType(Uri.parse("android.resource://..."), "image/*")

+0

仍然沒有運氣。異常ActivityNotFound異常 – AndroidCrazy

+0

嗯,這很奇怪。你的Activity類中有'onClick()'方法嗎?我想知道,如果您在當前活動實例或另一個objet上調用'startActivityForResult' ... –

+0

抱歉,遲了reply.onClick在我的活動中並在同一活動中調用startActivityForResult – AndroidCrazy