【问题标题】:Circular Crop instead of rectangular crop圆形裁剪而不是矩形裁剪
【发布时间】:2013-10-05 22:18:19
【问题描述】:

我知道如何创建一个圆形位图,它在以下示例中显示

Crop square image to circle - Programmatically

Cropping circular area from bitmap in Android

在上面的示例中,如何将图像放入圆形视图中, 我搜索了很多,发现大的是,,,,, 在大多数代码中,他们一直在使用以下函数来裁剪图像

 private void performCrop() 
 {
  // take care of exceptions
  try {
   // call the standard crop action intent (the user device may not
   // support it)
   Intent cropIntent = new Intent("com.android.camera.action.CROP");
   // indicate image type and Uri
   cropIntent.setDataAndType(picUri, "image/*");
   // set crop properties
   cropIntent.putExtra("crop", "true");
   // indicate aspect of desired crop
   cropIntent.putExtra("aspectX", 1);
   cropIntent.putExtra("aspectY", 1);
   // indicate output X and Y
   cropIntent.putExtra("outputX", 256);
   cropIntent.putExtra("outputY", 256);
   // retrieve data on return
   cropIntent.putExtra("return-data", true);
   // start the activity - we handle returning in onActivityResult
   startActivityForResult(cropIntent, PIC_CROP);
  }
  // respond to users whose devices do not support the crop action
  catch (ActivityNotFoundException anfe) {
   // display an error message
   String errorMessage = "Whoops - your device doesn't support the crop action!";
   Toast toast = Toast
     .makeText(this, errorMessage, Toast.LENGTH_SHORT);
   toast.show();
  }
 }

其实矩形裁剪是通过上面的代码实现的,,,我想用上面的函数进行圆形裁剪,,,请大家帮忙,,,

【问题讨论】:

    标签: android bitmap


    【解决方案1】:

    您可以查看类似链接Cirular Crop

    尝试如下圆形裁剪:

    图片/*裁剪的Exta选项表:

     SetExtra   DataType   Description     
    
       crop     String  Signals the crop feature
      aspectX   int Aspect Ratio
      aspectY   int Aspect Ratio
      outputX   int width of output created from this Intent
      outputY   int width of output created from this Intent
      scale     boolean     should it scale
      return-data   boolean Return the bitmap with Action=inline-data by using the data
      data  Parcelable  Bitmap to process, you may provide it a bitmap (not tested)
      circleCrop    String  if this string is not null, it will provide some circular cr
      MediaStore.EXTRA_OUTPUT ("output")    URI Set this URi to a File:///, see example code
    
     try {
    // Launch picker to choose photo for selected contact
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
    intent.setType("image/*");
    intent.putExtra("crop", "true");
    intent.putExtra("aspectX", aspectX);
    intent.putExtra("aspectY", aspectY);
    intent.putExtra("outputX", outputX);
    intent.putExtra("outputY", outputY);
    intent.putExtra("scale", scale);
    intent.putExtra("return-data", return_data);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri());
    intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
    intent.putExtra("noFaceDetection",!faceDetection); // lol, negative boolean noFaceDetection
    
    if (circleCrop) {
    intent.putExtra("circleCrop", true);
    }
    
     startActivityForResult(intent, PHOTO_PICKED);
    } catch (ActivityNotFoundException e) {
    Toast.makeText(thiz, R.string.photoPickerNotFoundText, Toast.LENGTH_LONG).show();
    }
    

    我是从HERE找到的

    【讨论】:

    • 您提供的答案只是我上面提到的问题先生,示例最终提供圆形图像但没有提供裁剪功能内的圆形裁剪,对不起
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2014-12-12
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多