如何为可绘制图像调用CROP intent

时间:2013-08-14 12:24:33

标签: android android-activity

我正在尝试打开我的可绘制图像以进行裁剪。

但是我收到了这个错误:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.camera.action.CROP dat=android.resource:/com.example.jain/drawable/b typ=image/* (has extras) }

代码:

final Uri selectedImage = Uri.parse("android.resource:/com.example.jain/drawable/b");
    final Intent intent = new Intent("com.android.camera.action.CROP");

    intent.setDataAndType(selectedImage, "image/*");

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

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

    intent.putExtra("outputX", width);
    intent.putExtra("outputY", width);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, FileUtils.getTempUri());
    intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString());
            startActivityForResult(intent, 1);

1 个答案:

答案 0 :(得分:0)

尝试这种方式:

Uri imgUri=Uri.parse("android.resource://your.package.name/"+R.drawable.image);
Intent intent = new Intent("com.android.camera.action.CROP");  
intent.setDataAndType(imgUri, "image/*");  
intent.putExtra("crop", "true");  
intent.putExtra("aspectX", 1);  
intent.putExtra("aspectY", 1);  
intent.putExtra("outputX", 80);  
intent.putExtra("outputY", 80);  
intent.putExtra("return-data", true);
startActivityForResult(intent, 1);

your.package.name替换您的包名称 在您的情况下,将其替换为com.example.jain

How to select and crop image on android是裁剪图片的好例子。

然后在Activity的onActivityResult()方法中处理您需要做的事情。您的输出文件应该是裁剪后的图像。

取决于设备该设备是否支持它。 此Intent操作不是内部API的一部分。一些制造商提供他们自己的Gallery应用程序,因此无法知道用户的设备是否会识别Intent。 请不要忘记这一点!! :)