圆角图片,圆形图片怎么实现?自定义View?通过
ImageFilterButton
,一个属性就搞定;
ImageFilterButto
能做的还有更多。
看看如何实现圆角或圆形图片:
「原图:」
将
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" />
复制代码
「效果:」
也可以通过设置
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时,效果:
crossfade=1时,效果:
接下来几个属性是对图片进行调节:
warmth
色温:
1=neutral自然, 2=warm暖色, 0.5=cold冷色
brightness
亮度:
0 = black暗色, 1 = original原始, 2 = twice as bright两倍亮度
;这个效果不好贴图,大家自行验证;
saturation
饱和度:
0 = grayscale灰色, 1 = original原始, 2 = hyper saturated超饱和
;
contrast
对比:
1 = unchanged原始, 0 = gray暗淡, 2 = high contrast高对比
;
上面属性的取值都是0、1、2,不过大家可以取其他值,效果也是不一样的。 最后一个属性
overlay
,表示不知道怎么用,看不到没效果,大家看看评论跟我说声?