创建圆形ImageView的最佳方法是什么? [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建圆形ImageView的最佳方法是什么? [关闭]相关的知识,希望对你有一定的参考价值。

我知道有很多第三方库可以创建一个CircularImageView,但我知道它们都不是很有效(有些不支持动画/转换,有些会有性能问题)。

  1. 我需要创建一个类似于Whatsapp Contacts屏幕的屏幕(带有圆形ImageView的列表和一些文本)。
  2. 需要在线列表中加载数据。
  3. 我不想裁剪图像或创建位图副本(像这样 - How to Make an ImageView in Circular Shape?
  4. 点击圆形图像时需要有触摸反馈(波纹效果)

我可以在没有任何第三方库的情况下实现此目如果没有,请让我知道最好的方法。

答案

你可以使用下一个library。添加Gradle依赖:

compile 'de.hdodenhof:circleimageview:2.2.0'

然后只需添加XML视图:

<de.hdodenhof.circleimageview.CircleImageView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/profile_image"
    android:layout_width="96dp"
    android:layout_height="96dp"
    android:src="@drawable/profile"
    app:civ_border_width="2dp"
    app:civ_border_color="#FF000000"/>
另一答案

使用滑动来同时加载图像和圆形图像。

滑翔:compile 'com.github.bumptech.glide:glide:3.8.0'

Glide.with(context).load(your url).asBitmap().centerCrop().dontAnimate().placeholder(R.drawable.placeholder_card_view).error(R.drawable.placeholder_card_view).into(new BitmapImageViewTarget(imageView) {
                @Override
                protected void setResource(Bitmap resource) {
                    RoundedBitmapDrawable circularBitmapDrawable =
                            RoundedBitmapDrawableFactory.create(context.getResources(), resource);
                    circularBitmapDrawable.setCircular(true);
                    imageView.setImageDrawable(circularBitmapDrawable);
                }
            });

以上是关于创建圆形ImageView的最佳方法是什么? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不创建新位图的情况下拥有圆形、中心裁剪的 imageView?

如何在圆形 imageView android 上添加一个阴影和边界

Android自己定义圆形ImageView(圆形头像 可指定大小)

Android 圆角、圆形 ImageView 实现

如何使用 Swift 正确设置圆形 imageView?

圆形头像以及一些常见需求形状自定义ImageView组件