Android Compose 图层的合成 : BlendMode
1. 图形的合成是什么 ?Compose中图层的合成通过BlendMode来控制 “显示谁、保留哪部分”常用于裁剪、遮罩、图层叠加。1.1 初始界面PreviewComposablefunMyBlendModeTest(){Box{Box(Modifier.size(100.dp).background(Color.Red,CircleShape))Box(Modifier.padding(start30.dp,top30.dp).size(100.dp).background(Color.Blue,CircleShape))}}默认的显示效果1.2 Modifier.graphicsLayerModifier.graphicsLayer会把组件内容绘制到独立图层变换 / 动画只重绘图层不触发重组也不影响父布局测量。PreviewComposablefunMyBlendModeTest(){Box{Box(Modifier.size(100.dp).background(Color.Red,CircleShape))Box(Modifier.graphicsLayer(blendMode...).padding(start30.dp,top30.dp).size(100.dp).background(Color.Blue,CircleShape))}}2. BlendMode : 图层的合成2.1 BlendMode.SrcOvergraphicsLayer的blendMode的默认值是BlendMode.SrcOver和不加graphicsLayer的效果一样叠加在上面。在图形绘制的概念里source : 源图形 蓝色圆destination : 目标图形 背景 红色圆2.2 BlendMode.DstOver目标在上、源在下目标透明处显源。2.3 BlendMode.Src仅显示源图完全覆盖目标。2.4 BlendMode.Dst仅显示目标图丢弃源图。2.5 BlendMode.SrcIn仅保留重叠部分且只显示源图内容常用作遮罩2.6 BlendMode.DstIn仅保留重叠部分且只显示目标图内容2.7 BlendMode.SrcOut仅保留源图非重叠部分重叠区透明。2.8 BlendMode.DstOut仅保留目标非重叠部分重叠区透明。2.9 BlendMode.SrcAtop2.10 BlendMode.DstAtop显示源全貌重叠区用目标图。2.11 BlendMode.Xor重叠区透明非重叠区保留各自2.12 BlendMode.Clear清除重叠区域变透明。3. BlendMode : 颜色混合除了图像的合成还支持颜色的混合。可以基于源与目标的RGB 通道做色彩运算用于滤镜、特效、艺术合成。这里介绍其中几个。3.1 BlendMode.Plus把源和目标的颜色通道直接相加3.2 BlendMode.Modulate只乘颜色通道不乘 Alpha3.3 BlendMode.Screen反色相乘 → 再反色变亮模式)3.4 BlendMode.Overlay根据底色自动选择 Multiply 或 Screen3.5 BlendMode.Darken每个通道取更暗的那个3.6 BlendMode.Lighten每个通道取更亮的那个3.7 BlendMode.Hue只用源的色相保留目标的饱和度 亮度4. 离屏缓冲详见我的另一篇博文Android Compose 离屏缓冲
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2643977.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!