Android 从图库中拾取或从相机捕获的高质量图像
我有3项任务:Android 从图库中拾取或从相机捕获的高质量图像,android,image,android-camera,crop,android-gallery,Android,Image,Android Camera,Crop,Android Gallery,我有3项任务: 从图库中选择图像 从照相机捕获图像 从1或2裁剪图像 图像的质量必须是好的 我的问题有什么解决办法吗?可能有一些库?默认情况下,Android实际上拥有您列举的所有库 从图库中拾取图像的步骤 Intent pickPhoto = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(pickPhoto
我的问题有什么解决办法吗?可能有一些库?默认情况下,Android实际上拥有您列举的所有库
Intent pickPhoto = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(pickPhoto, FROM_GALLERY);
Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePicture, FROM_CAMERA);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case FROM_GALLERY:
case FROM_CAMERA: {
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = data.getData();
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setDataAndType(selectedImage, "image/*");
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
cropIntent.putExtra("outputX", MAX_WIDTH);
cropIntent.putExtra("outputY", MAX_HEIGHT);
cropIntent.putExtra("return-data", true);
startActivityForResult(cropIntent, PICTURE_CROP);
}
break;
}
case PICTURE_CROP: {
if (resultCode == Activity.RESULT_OK) {
final Bundle extras = data.getExtras();
if (extras != null) {
Bitmap photo = extras.getParcelable("data");
// Hurray! You now have the photo as a Bitmap
}
}
break;
}
}
}
com.android.camera.action.CROP
,因为这并不存在于所有设备中。在那篇文章中,他还列举了我将在这里列出的备选方案:
到目前为止你试过什么?你试过什么了吗?你们有什么问题吗?有太多的问题,我决定从清晰的建议开始,比如答案。现在的问题是使用这个代码我不能像正方形一样裁剪图像。我将向您展示:什么是ParseManager?对不起,这是从我的一个项目复制的。我已编辑我的答案以删除特定于项目的代码。您的代码对我有效,但默认情况下我无法裁剪方形图像。看看屏幕:你用什么值来表示最大宽度和最大高度?您也可以尝试删除这些参数。MAX_WIDTH=1000;最大高度=1000;是的,我可以删除它们,但我真的需要最大尺寸为1000。此外,当我删除它们时,我有一个无限加载对话框。