一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)

Posted talk_8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)相关的知识,希望对你有一定的参考价值。

文章目录


各位看官们大家好,上一回中咱们说的例子是"如何调整组件在约束布局中的角度",这一回中咱们说的例子是" 图片滤镜ImageFilterView"。闲话休提,言归正转, 让我们一起Talk android吧!

背景介绍

我们在前面章回中介绍了如何调整组件在约束布局中的角度,因此也想到了一个可以调整角度的组件:ImageFilterView.它是Android后期推出的组件,我们可以把它
当作ImageView组件的加强版。本章回中将介绍它的使用方法。

功能介绍

ImageFilterView组件和constraintlayout2.0一起推出,主要用来对图片做过滤,(相当于是滤镜效果)。除此之外它还可以调整图片为圆角图片,对图片进行缩
放、旋转、平移。接来我们分别介绍这些功能。

图片滤镜

ImageFilterView组件的主要功能就是对图片做过滤,通俗点讲就是把两张图片叠加在一起,并且控制叠加后的颜色深浅度,进而实现滤镜效果。要实现滤镜效果需要使
用本组件的三个属性,详细如下:

  • src属性是组件自身显示的图片,可以看作是背景层的图片;
  • altSrc属性是组件上层显示显示的图片,可以看作是前台显示的图片,默认不显示,因为它的透明度为0;
  • crossfade属性用来调节altSrc中图片的透明度,数值从0-1.默认值为0,表示全透明,1表示不透明;

下面是一个示例代码,请大家参考,同时希望大家自己去实践,真正体验一下滤镜效果,这是文字无法表达的内容。

    <androidx.constraintlayout.utils.widget.ImageFilterView
        android:src="@drawable/background"
        app:altSrc="@drawable/foreground"
        app:crossfade="0.9"/>

图片圆角

ImageFilterView组件可以对图片做圆角处理,其实这相当于在图片上层加了一个不透明的圆角,可以看作是滤镜的一种。在没有此组件前,我们只能通过自定义View
来完成完成图片的圆角功能,实现此功能的思路就是在画图片的时候添加一个圆角图片。本组件实现圆角功能只需要两个属性,详细如下:

   app:round="100dp"     //通过长度来控制圆角的弧度
   app:roundPercent="4"  //通过百分比来控制圆角的弧度

注意:这两个属性中的任意一个都可以调整图片的圆角,在实际使用时只需要二选一即可,不能把这两个属性一起使用.

图片缩放

ImageFilterView组件可以对图片做缩放处理,实现此功能只需要使用下面的属性就可以:

 app:imageZoom="1.5"  //该属性的值为浮点数值

图片旋转

ImageFilterView组件可以对图片做旋转处理,实现此功能只需要使用下面的属性就可以:

   app:imageRotate="30" //该属性值为旋转的角度

图片旋转时以12点钟方向为0度,顺时针旋转,角度逐渐增大;

图片平移

ImageFilterView组件可以对图片做平移处理,实现此功能只需要使用下面的属性就可以:

app:imagePanX="300"    //属性值为int数值
app:imagePanY="300"    //属性值为int数值

我在实践中发现平移图片时,只有X方向有效果,Y方向没有效果;注意:平移是相对原图的x,y进行的,特别是旋转后能看出来效果。

看官们,关于"图片滤镜ImageFilterView"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

以上是关于一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)的主要内容,如果未能解决你的问题,请参考以下文章

一起Talk Android吧(第四百零七回:绘制几何图形)

一起Talk Android吧(第五百零八回:多层布局功能)

一起Talk Android吧(第五百二十七回:监听网络状态)

一起Talk Android吧(第五百一十七回:绘制波浪效果)

一起Talk Android吧(第五百零一回:如何正确地更新RecyclerView中的数据)

一起Talk Android吧(第五百零二回:如何在项目中使用代码混淆)