我的主项目从某些来源获取图像(返回Uri)。下一步是裁剪图像(触摸输入)。我最近发现一些手机制造商搞砸了android基类,所以:
com.android.camera.action.crop
并不总是存在。
所以我找到了一个可以裁剪的库:https://github.com/lvillani/android-cropimage 我已将库添加到我的eclipse构建路径和项目库中。
我的问题是,我可以像这样打开图书馆:
Intent intent = new Intent("com.android.camera.action.CROP");
//intent.setClassName("com.android.camera", "com.android.camera.CropImage");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("output", Uri);
intent.putExtra("outputFormat", "JPEG");
startActivityForResult(intent, 1);
然后检索裁剪后的图像还是我必须做额外的其他事情?
我想确保我的应用程序适用于所有内容,这是最好的方法吗?或者有更好的方法,请解释。 (还要保持简单,相当新的Android开发!,谢谢!)
答案 0 :(得分:4)
我安装了库并确保它链接到我的项目并且在构建路径中,然后我只是做了:
打开文件管理器:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), PICK_FROM_FILE);
或者,如果您想从相机中捕捉
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra("return-data", true);
startActivityForResult(intent, GET_IMAGE_FROM_CAMERA);
然后裁剪图片:
Intent intent = new Intent(this, com.android.camera.CropImage.class);
intent.setData(uri);
intent.putExtra("return-data", true);
startActivityForResult(intent, CROP);
我已经在一些设备上对此进行了测试,它的工作正常且花花公子。也适用于相机。