我想知道PorterDuff.Mode在android图形中的含义.

我知道这是transfer mode分.

我也知道,它有一些属性,比如DST_IN,Multiply等.

推荐答案

这里有一篇谷歌工程师的精彩文章,并附有插图:

http://ssp.impulsetrain.com/porterduff.html

PorterDuff被描述为一种将图像组合在一起的方法,就好像它们是相互叠加的"不规则形状的纸板",以及混合重叠部分的方案.

Android合成图像的默认方式是PorterDuff.Mode.SRC_OVER,这相当于在目标图像上绘制源图像/ colored颜色 .换句话说,它按照您的预期进行操作,并在目标图像(画布)上绘制源图像(您正在绘制的图像),目标图像的显示程度由源图像的Alpha定义.

文章中的PorterDuff infographic

您可以使用下面的关键字来理解the Android docs用来描述其他模式的代数(有关类似术语的更全面描述,请参见the article).

  • Sa源阿尔法
  • Sc源 colored颜色
  • Da目的地阿尔法
  • Dc目标 colored颜色

其中alpha是一个值[0..1],每个通道替换一次 colored颜色 (因此,红色、绿色和蓝色各使用一次公式)

结果值在方括号中指定为一对,如下所示.

[<alpha-value>,<color-value>]

其中alpha-valuecolor-value分别是用于生成最终alpha香奈儿和每个 colored颜色 香奈儿的公式.

Android相关问答推荐

在Android中点击滑动时触发的手势

Android编写动画在发布版本中崩溃

如何将结果从viewModelScope传递到活动

有没有办法知道每台安卓设备上的通知限制?

如何go 除回调流中不可用的状态?

Android compose ,在图像中zoom 而不裁剪?

不能在LazyGrid-Jetpack Compose中使用填充最大宽度或填充父项最大宽度

在一列中垂直对齐两个框

当按下通知时,将Android应用程序置于前台

Lateinit变量结果始终以kotlin格式未初始化

在java android studio项目上安装mapbox

参数化类RecyclerView.Adapter的原始使用

是否可以在 compose 中使用三次贝塞尔曲线进行动画?

减少Compose中可滚动选项卡之间的间距

将 React Native 应用程序背景带到前台

在 Android 房间迁移中获取上下文

如何在 Jetpack Compose 中禁用 Horizo​​ntalPager 的分页动画

如何在屏幕旋转或系统主题更改后将光标移动到 TextField 的末尾并保持键盘显示?

如何在jetpack compose中创建自定义rememberState?

如何在 kotlin 的 android room DB 中设置一对多关系