Android自定义形状不适合ImageView

时间:2016-03-18 15:24:20

标签: android android-imageview android-drawable shape

我想将白色圆圈作为ImageView的背景 我有一个自定义的形状:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:innerRadius="0dp"
        android:thickness="35dp"
        android:useLevel="false"
        android:shape="ring">
        <solid
            android:color="@color/white"/>
    </shape>
</item>

好吧,好吧,如果我指定了

    "android:thickness="35dp"

在这种形状下,它在ImageView中看起来很不错。

但如果我将其更改为75dp(例如),ImageView的背景只是完全白色,而不是白色圆圈

我很想知道,因为ImageView通常会缩放我作为背景放置的图像 有没有办法让自定义形状有相同的行为?

1 个答案:

答案 0 :(得分:0)

您可以使用roundedImageViewhttps://github.com/vinc3m1/RoundedImageView。我使用它超过两年,我根本没有抱怨它。只需在build.gradle

中添加此行即可
dependencies {
    compile 'com.makeramen:roundedimageview:2.2.1'
}

您可以像这样定义自定义图像视图小部件

<com.makeramen.roundedimageview.RoundedImageView
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/imageView1"
        android:src="@drawable/photo1"
        android:scaleType="fitCenter"
        app:riv_corner_radius="30dip"
        app:riv_border_width="2dip"
        app:riv_border_color="#333333"
        app:riv_mutate_background="true"
        app:riv_tile_mode="repeat"
        app:riv_oval="true" />

使用此库,您可以定义:

app:riv_corner_radius=""
app:riv_border_width=""
 app:riv_border_color=""

希望能帮到你!