使用Glide的圆形轮廓Pic的Android边框

时间:2017-10-10 20:20:28

标签: android user-interface border android-glide profile-picture

已解决问题检查下面的答案以便理解

我正在尝试创建从Facebook帐户下载的个人资料图片的边框。但即使在stackoverflow上研究其他示例之后,我也无法正确执行此操作。正在使用Glide库下载个人资料图片。这是我的代码: -

Java中的Glide库代码

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);
            }
        });

XML中的ImageView

<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英寸手机{Real Phone} enter image description here

在5.5英寸手机{模拟器}中

enter image description here

3 个答案:

答案 0 :(得分:2)

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

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

enter image description here

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

您可以为ImageView创建xml文件和setBackground,或者使用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"
                                />