创建圆形ImageView的最佳方法是什么?

时间:2017-12-26 11:15:21

标签: android android-layout imageview

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

  1. 我需要创建一个类似于Whatsapp Contacts屏幕的屏幕(带有圆形ImageView和一些文本的列表)。
  2. 需要在线列表中加载数据。
  3. 我不想裁剪图片或创建位图副本(如此How to Make an ImageView in Circular Shape?
  4. 点击圆形图像时需要有触摸反馈(涟漪效应)
  5. 我可以在没有任何第三方库的情况下实现此目的吗?如果没有,请告诉我最好的方法。

2 个答案:

答案 0 :(得分:7)

您可以使用下一个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"/>

答案 1 :(得分:1)

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

滑行: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);
                }
            });