在HTC设备中使用com.Android.camera.action.crop返回黑色图像的Android圆形裁剪图像

在HTC设备中使用com.Android.camera.action.crop返回黑色图像的Android圆形裁剪图像,android,crop,android-camera-intent,Android,Crop,Android Camera Intent,在我的应用程序中,用户可以在android中从相机或图库中选择图像。选择图像后,用户还可以从原始图像中裁剪圆形图像。但在圆形裁剪之后,我得到了HTC设备(explorer和其他HTC设备)中的黑色矩形图像。在三星设备中,它运行良好。我正在使用以下代码裁剪图像: intent.setDataAndType(selectedImage, "image/*"); intent.putExtra("crop", "true"); intent.putExtra("outputX", 96); inten

在我的应用程序中,用户可以在android中从相机或图库中选择图像。选择图像后,用户还可以从原始图像中裁剪圆形图像。但在圆形裁剪之后,我得到了HTC设备(explorer和其他HTC设备)中的黑色矩形图像。在三星设备中,它运行良好。我正在使用以下代码裁剪图像:

intent.setDataAndType(selectedImage, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("outputX", 96);
intent.putExtra("outputY", 96);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
intent.putExtra("circleCrop", "true");
startActivityForResult(intent, CROP_FROM_CAMERA);
这是我的onactivityresult方法,我将在其中获得裁剪图像:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    try {
    Bundle extras = data.getExtras();
    Bitmap photo = null;

    if (extras != null) {
    photo = extras.getParcelable("data");
    }
    if (photo != null) {
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    photo.compress(Bitmap.CompressFormat.PNG, 100, bytes);
    byte[] b = bytes.toByteArray();
    FileOutputStream out;// = new FileOutputStream(filename);
    out = openFileOutput("cropImage.png", Context.MODE_PRIVATE);
    out.write(b);
    out.close();
     pref.edit().putString(PrefernceData.PREF_IMAGE_CROP_URL,"cropImage.png").commit();
    Log.i("capute", "success after crop......");
    }catch (Exception e) {
        Toast.makeText(this, "Can not find image crop app",
        Toast.LENGTH_SHORT).show();
    }
}

在上面的代码中,当我删除这一行时:intent.putExtra(“circleCrop”,“true”);它适用于所有HTC和三星设备上的矩形裁剪图像。但我只想要圆形裁剪图像。如何解决此问题?

您使用的意图实际上不是Dalvik的正式部分。它在许多设备上都能工作,但不能保证在任何/所有设备上都能工作。您可以在中看到一些备用库


可以找到一些较新的替代方法。

除了在共享文件夹中只输入图像名称外,还可以尝试将图像的整个路径放在存储裁剪图像的位置。问题不在于图像路径,我得到的位图(在我的示例照片中)本身为黑色图像。96 x 96。