有人知道如何用Glide显示圆角图像吗? 我正在用Glide加载图像,但我不知道如何将圆角参数传递给这个库。
我需要显示图像像下面的例子:
有人知道如何用Glide显示圆角图像吗? 我正在用Glide加载图像,但我不知道如何将圆角参数传递给这个库。
我需要显示图像像下面的例子:
当前回答
Glide 4.6.1版本
Glide.with(context)
.load(url)
.apply(RequestOptions.bitmapTransform(new CircleCrop()))
.into(imageView);
其他回答
滑翔V4:
Glide.with(context)
.load(url)
.circleCrop()
.into(imageView);
滑翔V3:
您可以使用RoundedBitmapDrawable圆形图像与Glide。不需要自定义ImageView。
Glide.with(context).load(url).asBitmap().centerCrop().into(new BitmapImageViewTarget(imageView) {
@Override
protected void setResource(Bitmap resource) {
RoundedBitmapDrawable circularBitmapDrawable =
RoundedBitmapDrawableFactory.create(context.getResources(), resource);
circularBitmapDrawable.setCircular(true);
imageView.setImageDrawable(circularBitmapDrawable);
}
});
您也可以使用这个实现,不过值得注意的是,这个实现是基于匕首柄的
提供程序实现
@Module
@Named("circleCrop")
@InstallIn(SingletonComponent::class)
object AppModule {
@Singleton
@Provides
fun provideGlideInstance(
@ApplicationContext context: Context
) = Glide.with(context).setDefaultRequestOptions(
RequestOptions()
.placeholder(R.drawable.logo)
.error(R.drawable.logo)
.apply(RequestOptions().circleCropTransform())
.diskCacheStrategy(DiskCacheStrategy.DATA)
)
}
依赖注入
@Inject
@Named("circleCrop")
lateinit var glide: RequestManager
加载图片
glide.load(hotel.image).into(imgItemSearch)
在这种情况下,我需要添加阴影,和imageView抬高不工作
实现“com.github.bumptech.glide:滑翔:4.10.0”
XML
<FrameLayout
android:id="@+id/fl_image"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="10dp"
android:background="@drawable/card_circle_background"
android:elevation="8dp">
<ImageView
android:id="@+id/iv_item_employee"
android:layout_width="60dp"
android:layout_height="60dp"
tools:background="@color/colorPrimary" />
</FrameLayout>
可拉的形状
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/white"/>
</shape>
滑翔的配置
Glide.with(this)
.asBitmap()
.load(item.image)
.apply(RequestOptions.circleCropTransform())
.into(iv_item_employee)
private void setContactImage(@NonNull ViewHolder holder, ClsContactDetails clsContactDetails) {
Glide.with(context).load(clsContactDetails.getPic())
.apply(new RequestOptions().centerCrop().circleCrop().placeholder(R.mipmap.ic_launcher)).into(holder.ivPersonImage);
}
对我来说;.apply(RequestOptions.circleCropTransform())(4.11)未工作。因为我在用ImageButton。当我用(可点击的)ImageView更改时,它工作了,看起来像我想要的样子。