2013-09-30 35 views
2

我知道如何了解创建一个圆形的位图将其示出在下面的实施例圆形作物而不是矩形作物

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(); 
    } 
} 

其实矩形裁剪通过上述代码实现了,,,我想使用圆形裁剪上述功能,,,请提供您的帮助,,,

回答

3

您可以检查出的类似链接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

+0

u必须提供的答案就是上面我所提到的,先生的问题,这些例子最终实现圆形图像,但无法提供裁剪机能的研究里面的圆形作物,对不起 –

+0

@GowthamRayar结帐我更新的答案。 – GrIsHu