簡體   English   中英

Android-Image-Cropper 轉圈

[英]Android-Image-Cropper to circle

我正在嘗試將我的圖像裁剪成一個圓圈,為此我正在使用提供的 Android-Image-Cropper 庫 - 'com.theartofdev.edmodo:android-image-cropper:2.4.+' 目前我能夠選擇一個圖像,裁剪 window 顯示為一個圓圈,雖然它不會裁剪成一個圓圈,而是一個正方形。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == GALLERY_REQUEST && resultCode == RESULT_OK) {
        Uri imageUri = data.getData();
        CropImage.activity(imageUri)
                .setAspectRatio(150,150)
                .setGuidelines(CropImageView.Guidelines.ON)
                .setCropShape(CropImageView.CropShape.OVAL)
                .start(this);
    }
    if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
        CropImage.ActivityResult result = CropImage.getActivityResult(data);
        if (resultCode == RESULT_OK) {
            mImageUri = result.getUri();
            mSetupImageBtn.setImageURI(mImageUri);
        } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
            Exception error = result.getError();
        }
    }
}

您可以像第一條評論中提到的那樣使用 glide 如何使用 Glide 庫舍入圖像?

其次,你可以使用下面的庫編譯'de.hdodenhof:circleimageview:1.2.1'

使用 Picasso 你可以使用上面的圓形圖像庫 ab 可以使用 picasso 在其中加載圖像,如下所示:

Picasso.with(activity).load(url).into(ImageView);

例子:

<de.hdodenhof.circleimageview.CircleImageView
                        android:id="@+id/img_profile"
                        android:layout_width="100dp"
                        android:layout_height="100dp" />



Picasso.with(activity).load(url).into(ImageView);

如果您不想使用 circleImageView,那么您可以按照此鏈接評論中的使用創建一個轉換

android:用畢加索創建圓形圖像

不再支持ArthurHub/Android-Image-Cropper在此處閱讀更多信息)。 所以你可以遷移到一個支持圓形裁剪的新項目CanHub/Android-Image-Cropper function。

示例如下:

CropImageVIew添加到您的標記中:

<com.canhub.cropper.CropImageView
    android:id="@+id/cropView"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:cornerShape="rectangle" />

在片段或活動中設置圖像:

binding.cropView.setImageUriAsync(imageUri)

將結果偵聽器添加到cropView

binding.cropView.setOnCropImageCompleteListener { view, result ->
    //  !!! You should use result.getBitmap(ctx), because result.bitmap returns null !!!
    // Read more here: https://github.com/CanHub/Android-Image-Cropper/pull/70

    val imageBitmap = result.getBitmap(requireContext())!!
    val ovalBitmap = CropImage.toOvalBitmap(imageBitmap)

    // Now you can save ovalBitmap to file or set it to ImageView with setImageBitmap()
}

將點擊偵聽器添加到您的“裁剪按鈕”

binding.cropImageButton.setOnClickListener {
    binding.cropView.croppedImageAsync()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM