天天看点

ImageFilterButton

圆角图片,圆形图片怎么实现?自定义View?通过

ImageFilterButton

,一个属性就搞定;

ImageFilterButto

能做的还有更多。

看看如何实现圆角或圆形图片:

「原图:」

ImageFilterButton

roundPercent

属性设置为

1

,取值在

0-1

,由正方形向圆形过渡。

<androidx.constraintlayout.utils.widget.ImageFilterButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="100dp"
        app:roundPercent="1"
        android:src="@mipmap/ic_launcher"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
复制代码
           

「效果:」

ImageFilterButton

也可以通过设置

round

属性来实现:

<androidx.constraintlayout.utils.widget.ImageFilterButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="100dp"
        android:src="@mipmap/ic_launcher"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:round="50dp" />
复制代码
           

「其他属性:」

altSrc

src

属性是一样的概念,

altSrc

提供的资源将会和

src

提供的资源通过

crossfade

属性形成交叉淡化效果。默认情况下,

crossfade=0

altSrc

所引用的资源不可见,取值在

0-1

。 例如:

<androidx.constraintlayout.utils.widget.ImageFilterButton
        android:id="@+id/ivImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="100dp"
        android:src="@mipmap/ic_launcher"
        app:altSrc="@mipmap/ic_sun"
        app:crossfade="0.5"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:round="50dp" />
复制代码
           

crossfade=0.5时,效果:

ImageFilterButton

crossfade=1时,效果:

ImageFilterButton

接下来几个属性是对图片进行调节:

warmth

色温:

1=neutral自然, 2=warm暖色, 0.5=cold冷色

ImageFilterButton

brightness

亮度:

0 = black暗色, 1 = original原始, 2 = twice as bright两倍亮度

;这个效果不好贴图,大家自行验证;

saturation

饱和度:

0 = grayscale灰色, 1 = original原始, 2 = hyper saturated超饱和

ImageFilterButton

contrast

对比:

1 = unchanged原始, 0 = gray暗淡, 2 = high contrast高对比

;

ImageFilterButton

上面属性的取值都是0、1、2,不过大家可以取其他值,效果也是不一样的。 最后一个属性

overlay

,表示不知道怎么用,看不到没效果,大家看看评论跟我说声?

ImageFilterButton