通过Android图库裁剪方法修剪绘制的图像 [英] Crop a drawable image by android gallery cropping method

查看:177
本文介绍了通过Android图库裁剪方法修剪绘制的图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的ImageView的ONCLICK,我想裁剪这是在我的应用程序绘制文件夹中的Andr​​oid画廊的默认种植技术和裁剪图像应在相同的设置,一旦它的裁切的ImageView的背景图像。

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.

推荐答案

好了,这是code我用做这样的事情。也许你可以尝试一下:

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

我想你必须 intent.setType(...)更改为 intent.setDataAndType(Uri.parse(机器人。资源:// ......),图像/ *)

这篇关于通过Android图库裁剪方法修剪绘制的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆