防止Imageview自定义背景剪辑

时间:2018-10-27 07:49:20

标签: android android-layout

我已经通过定义自己的背景将图像视图变成圆形。

circle.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:innerRadius="0dp"
    android:shape="ring"
    android:thicknessRatio="1.9"
    android:useLevel="false"
    >
    <solid android:color="@android:color/transparent" />

    <stroke
        android:width="10dp"
        android:color="@android:color/white" />
</shape>

shadow_rect.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:drawable="@drawable/circle"/>

</layer-list>

mainActivity.xml:

<ImageView
    android:id="@+id/imageView4"
    android:layout_width="157dp"
    android:layout_height="150dp"
    android:background="@drawable/profile_image"
    android:cropToPadding="false"
    app:layout_constraintBottom_toBottomOf="@+id/banner_iamge"
    app:layout_constraintEnd_toEndOf="@+id/banner_iamge"
    app:layout_constraintHorizontal_bias="0.501"
    app:layout_constraintStart_toStartOf="@+id/banner_iamge"
    app:layout_constraintTop_toBottomOf="@+id/banner_iamge"
    app:layout_constraintVertical_bias="0.476"
    app:srcCompat="@drawable/layer_4" />

但是imageview圈子像这样剪辑:

如您所见,个人资料图像周围的白色圆形环被裁剪了。我希望白色环在图像周围显示而不会剪切

clipped imageview

我该如何解决?

2 个答案:

答案 0 :(得分:1)

使用此库

dependencies {
implementation 'de.hdodenhof:circleimageview:2.2.0'
}

XMl以此替换Imagview

<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 :(得分:0)

背景是视图容器的填充,它不会缩小内容。因此,我建议您为要实现的目标创建自定义视图。

GitHub上有一些很棒的项目。我的最爱之一是:https://github.com/hdodenhof/CircleImageView