有人知道如何用Glide显示圆角图像吗? 我正在用Glide加载图像,但我不知道如何将圆角参数传递给这个库。
我需要显示图像像下面的例子:
有人知道如何用Glide显示圆角图像吗? 我正在用Glide加载图像,但我不知道如何将圆角参数传递给这个库。
我需要显示图像像下面的例子:
当前回答
使用glide库,您可以使用以下代码:
Glide.with(context)
.load(imageUrl)
.asBitmap()
.placeholder(R.drawable.user_pic)
.centerCrop()
.into(new BitmapImageViewTarget(img_profPic) {
@Override
protected void setResource(Bitmap resource) {
RoundedBitmapDrawable circularBitmapDrawable = RoundedBitmapDrawableFactory.create(context.getResources(), resource);
circularBitmapDrawable.setCircular(true);
img_profPic.setImageDrawable(circularBitmapDrawable);
}
});
其他回答
Glide 4.6.1版本
Glide.with(context)
.load(url)
.apply(RequestOptions.bitmapTransform(new CircleCrop()))
.into(imageView);
为了Glide 4.x.x
use
Glide
.with(context)
.load(uri)
.apply(
RequestOptions()
.circleCrop())
.into(imageView)
医生说
圆形图片:CircleImageView/CircularImageView/RoundedImageView 已知与TransitionDrawable (.crossFade()有问题 .thumbnail()或.placeholder())和动画gif,使用 BitmapTransformation (.circleCrop()将在v4中可用)或 .dontAnimate()来修复这个问题
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
RequestOptions options=new RequestOptions();
options.centerCrop().placeholder(getResources().getDrawable(R.drawable.user_placeholder));
Glide.with(this)
.load(preferenceSingleTon.getImage())
.apply(options)
.into(ProfileImage);
圆圈裁剪+占位符+交叉渐隐
Glide.with(context!!)
.load(randomImage)
.apply(RequestOptions.bitmapTransform(CircleCrop()).error(R.drawable.nyancat_animated))
.transition(DrawableTransitionOptions()
.crossFade())
.into(picture)
我发现了一个简单的解决方案,为imageview添加边界,其中的颜色想要设置或添加渐变图像。
步骤:
取一帧布局并添加两张图像。您可以根据您的要求设置大小。对于imgPlaceHolder,您需要一个想要设置的白色图像或颜色。
<ImageView
android:id="@+id/imgPlaceHolder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:src="@drawable/white_bg"/>
<ImageView
android:id="@+id/imgPic"
android:layout_width="190dp"
android:layout_height="190dp"
android:layout_gravity="center"
android:src="@drawable/image01"/>
</FrameLayout>
After placing this code on xml file , put below line in java file. Glide.with(this).load(R.drawable.image01).asBitmap().centerCrop().into(new BitmapImageViewTarget(imgPic) { @Override protected void setResource(Bitmap resource) { RoundedBitmapDrawable circularBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), resource); circularBitmapDrawable.setCircular(true); imageView.setImageDrawable(circularBitmapDrawable); } }); Glide.with(this).load(R.drawable.white_bg).asBitmap().centerCrop().into(new BitmapImageViewTarget(imgPlaceHolder) { @Override protected void setResource(Bitmap resource) { RoundedBitmapDrawable circularBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), resource); circularBitmapDrawable.setCircular(true); imgTemp2.setImageDrawable(circularBitmapDrawable); } });
这将使imageview的边界简单,没有任何额外的填充和边缘。
注意:白色图像是强制性的边界,否则它将不起作用。
快乐编码:)