Android 使用 Glide 的圆形头像边框

Android Border of Circular Profile Pic using Glide

问题已解决请查看下面的答案以了解情况


我正在尝试为从 Facebook 帐户下载的个人资料图片创建边框。但是即使在研究了 Whosebug 上的其他示例之后,我也无法正确地做到这一点。正在使用 Glide 库下载个人资料图片。这是我的代码:-

Glide库代码在Java

Glide.with(Home.this).load(url).asBitmap().into(new BitmapImageViewTarget(profile_pic){
            @Override
            protected void setResource(Bitmap resource) {
                RoundedBitmapDrawable circular = RoundedBitmapDrawableFactory.create(getApplicationContext().getResources(),resource);
                circular.setCircular(true);
                profile_pic.setImageDrawable(circular);
            }
        });

ImageView 在 XML

<ImageView
        android:id="@+id/profile_pic"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:src="@mipmap/ic_launcher"
        android:padding = "5dp"
        android:background="@drawable/profile_pic_border"/>

在Drawable中绘制边框

<shape android:shape="oval"
xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke
    android:width="5dp"
    android:color="#3e65b4"/>
<size android:height="50dp"
android:width="50dp"/>

这是我从上面的代码中得到的结果:-

5.7英寸Phone{真实Phone}

5.5 英寸 phone{模拟器}

在您的可绘制文件上,不要使用椭圆形,而是将其更改为环形以获得完美的圆形,如下所示:

<shape android:shape="ring"
xmlns:android="http://schemas.android.com/apk/res/android" >

所以,我已经解决了这个问题,我的代码使用椭圆是 100% 正确的。

我所做的是将我放置该图像的相对布局固定为 90dp,这使其不合适,一旦我更正它以包装内容,它就非常适合。附上快照供其他人参考。

您可以创建 xml 文件并为 ImageView 设置背景或使用 github 中的库 代码

<de.hdodenhof.circleimageview.CircleImageView
                                android:id="@+id/act_detail_job_img_company"
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:layout_centerHorizontal="true"
                                android:background="@android:color/transparent"
                                android:src="@drawable/user"
                                app:civ_border_color="#FFFFFFFF"
                                app:civ_border_width="2dp"
                                />