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();
}
}
}
你可以像第一条评论中提到的那样使用滑行
How to round an image with Glide library?
其次,你可以使用下面的库
编译 '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: create circular image with picasso
ArthurHub/Android-Image-Cropper is not supported anymore (read more here). So you can migrate to a new project CanHub/Android-Image-Cropper支持圆形裁剪功能
示例如下:
将 CropImageVIew
添加到您的标记中:
<com.canhub.cropper.CropImageView
android:id="@+id/cropView"
android:layout_width="0dp"
android:layout_height="0dp"
app:cornerShape="rectangle" />
片段中的设置图像或activity:
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()
}
我正在尝试将我的图像裁剪成圆形,为此我正在使用 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();
}
}
}
你可以像第一条评论中提到的那样使用滑行 How to round an image with Glide library?
其次,你可以使用下面的库 编译 '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: create circular image with picasso
ArthurHub/Android-Image-Cropper is not supported anymore (read more here). So you can migrate to a new project CanHub/Android-Image-Cropper支持圆形裁剪功能
示例如下:
将 CropImageVIew
添加到您的标记中:
<com.canhub.cropper.CropImageView
android:id="@+id/cropView"
android:layout_width="0dp"
android:layout_height="0dp"
app:cornerShape="rectangle" />
片段中的设置图像或activity:
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()
}