未找到处理 Intent act=com.android.camera.action.CROP 的 Activity
Posted
技术标签:
【中文标题】未找到处理 Intent act=com.android.camera.action.CROP 的 Activity【英文标题】:No Activity found to handle Intent act=com.android.camera.action.CROP 【发布时间】:2015-01-19 05:46:21 【问题描述】:我正在尝试实现一个功能,以从 android 内置图库(不是从 SD 卡)中挑选照片或使用相机拍照。选择图像后,用户将对其进行裁剪。 ImageView 也将使用裁剪后的图像进行更新。现在从图库中选择图像后,我无法裁剪它 - 返回“未找到处理 Intent act=com.android.camera.action.CROP 的活动”错误。而且我似乎也无法使用所选图像更新 ImageView。有人可以告诉我出了什么问题吗?谢谢。
我的代码如下:
private void ShowPickDialog()
new AlertDialog.Builder(this)
.setTitle("Add Photo")
.setNegativeButton("Select from Photos", new DialogInterface.OnClickListener()
public void onClick(DialogInterface dialog, int which)
dialog.dismiss();
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),3);
)
.setPositiveButton("Take a Pic", new DialogInterface.OnClickListener()
public void onClick(DialogInterface dialog, int whichButton)
dialog.dismiss();
Intent intent = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri
.fromFile(new File(Environment.DIRECTORY_PICTURES,
"image.jpg")));
startActivityForResult(intent, 2);
).show();
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
switch (requestCode)
case 1:
startPhotoZoom(data.getData());
break;
case 2:
File temp = new File(Environment.getExternalStorageDirectory()
+ "/test.jpg");
startPhotoZoom(Uri.fromFile(temp));
break;
case 3:
if(data != null)
setPicToView(data);
break;
default:
break;
super.onActivityResult(requestCode, resultCode, data);
public void startPhotoZoom(Uri uri)
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 150);
intent.putExtra("outputY", 150);
intent.putExtra("return-data", true);
startActivityForResult(intent, 3);
private void setPicToView(Intent picdata)
Bundle extras = picdata.getExtras();
if (extras != null)
Bitmap photo = extras.getParcelable("data");
//update ImageView with selected image
mPic.setImageBitmap(photo);
【问题讨论】:
com.android.camera.action.CROP 操作是内部 API 的一部分,因此并非在所有情况下都有效。只是想提一下 :) 更多详情 -commonsware.com/blog/2013/01/23/… 或者您可以尝试使用裁剪意图设置类名称,例如 .. Intent intent = new Intent("com.android.camera.action.CROP"); intent.setClassName("com.android.camera", "com.android.camera.CropImage"); 【参考方案1】:Android没有有裁剪意图
您可以改用库
Android CropImage
【讨论】:
以上是关于未找到处理 Intent act=com.android.camera.action.CROP 的 Activity的主要内容,如果未能解决你的问题,请参考以下文章
未找到处理 Intent act=com.android.camera.action.CROP 的 Activity
未找到处理 Intent act=android.service.wallpaper.CHANGE_LIVE_WALLPAPER 的活动(有附加功能)
android.content.ActivityNotFoundException:未找到处理 Intent act=android.settings.USAGE_ACCESS_SETTINGS