发布时间:2026/8/24 9:45:30
图文环绕排版实战案例:用Combo Breaker打造精美新闻阅读器的完整指南 图文环绕排版实战案例用Combo Breaker打造精美新闻阅读器的完整指南【免费下载链接】combo-breakerText layout for Compose to flow text around arbitrary shapes.项目地址: https://gitcode.com/gh_mirrors/co/combo-breaker还在为 Jetpack Compose 中「文字如何优雅地绕开图片」而头疼吗Combo Breaker 就是为此而生的开源文本排版库它提供TextFlow组合组件能让文字像报纸一样自动环绕任意形状——无论是矩形图片、不规则轮廓还是多个独立形状——并支持多栏布局、两端对齐与连字符断行。本文以一个新闻阅读器为实战案例带你快速上手这套「图文环绕排版」方案。为什么新闻阅读器需要图文环绕 想象一个类报纸的阅读界面两张大图穿插在多栏文字中文字紧贴图片边缘自然换行、疏密均匀。这种效果在 Compose 原生组件中很难实现而 Combo Breaker 用几何算法核心布局逻辑见combo-breaker/src/main/java/dev/romainguy/text/combobreaker/TextLayout.kt自动计算每一行文字的可排区间真正做到「所见即所得」的环绕效果。核心特性一览✨ 环绕任意形状矩形、任意Path轮廓、一个元素的多个形状 多栏布局1~N 栏栏间距可调 两端对齐Justification与连字符断行Hyphenation排版更均衡 支持AnnotatedString富文本样式加粗、变色、斜体 兼容 API 29断行能力在 API 33 完整生效快速上手三步接入图文环绕第 1 步添加依赖在build.gradle中引入两个构件按设计系统二选一// 基础版不依赖 Material3对应 BasicTextFlow 组件 implementation dev.romainguy:combo-breaker:0.9.0 // Material3 版对应 TextFlow 组件 implementation dev.romainguy:combo-breaker-material3:0.9.0第 2 步运行官方 Demo 感受效果克隆仓库后打开combo-breaker-demo模块即可看到可交互示例栏数、形状类型、对齐、断行都可实时切换源码位于combo-breaker-demo/src/main/java/dev/romainguy/text/combobreaker/demo/ComboBreakerActivity.ktgit clone https://gitcode.com/gh_mirrors/co/combo-breaker第 3 步在你的页面中放置 TextFlowTextFlow的行为类似一个Box它的每一个子元素都会定义一个「环绕形状」文字自动绕开这些形状。实战案例打造报纸级排版效果 下面的示例还原了一个典型新闻页面左侧一个大写字母「T」图片文字从其右侧流过页面中央一张风景图文字从左右两侧同时流过再配合 8.dp 的边距margin留出呼吸感。TextFlow( SampleText, style TextStyle(fontSize 14.sp), columns 2 ) { Image( bitmap letterT.asImageBitmap(), contentDescription , modifier Modifier.flowShape(FlowType.OutsideEnd) ) Image( bitmap landscapeBitmap.asImageBitmap(), contentDescription , modifier Modifier .align(Alignment.Center) .flowShape(margin 6.dp) ) }FlowType控制文字从哪侧流过OutsideEnd只从一侧、Outside两侧都流、Inside则限制在形状内部。让文字紧贴不规则轮廓矩形只是起点。借助 pathway 库可以从图片位图中提取轮廓Path让文字精确贴合麦克风、徽章这类不规则外形val microphoneShape microphoneBitmap .toPath(alphaThreshold 0.5f).asComposePath() Image( bitmap microphoneBitmap.asImageBitmap(), contentDescription , modifier Modifier.flowShape( FlowType.OutsideEnd, 6.dp, microphoneShape ) )一个元素、多个形状对爱心图案这类由多个独立部分组成的图形用flowShapes注意是复数传入形状列表文字会在每一颗爱心之间穿插环绕效果非常惊艳两端对齐 连字符断行在窄栏排版中开启对齐与断行可以显著消除难看的空隙这正是报纸排版的灵魂所在 官方建议环绕非矩形形状时保持TextFlowJustification.Auto开启能带来更均衡的环绕效果连字符断行TextFlowHyphenation.Auto在 API 33 生效。关键参数速查表 ⚡参数 / 修饰符作用建议columns文字栏数阅读类页面常用 2 栏columnSpacing栏间距默认 16.dpjustification两端对齐非矩形环绕时建议开启hyphenation连字符断行建议开启API 33flowShape(type, margin, path)定义单个环绕形状margin给文字留边距flowShapes(type, margin, paths)定义多个环绕形状用于多部件图形debugOverlay调试图层开发期打开验证形状边界源码结构想深入原理从哪里看核心布局算法combo-breaker/src/main/java/dev/romainguy/text/combobreaker/下的TextLayout.kt环绕与断行计算、BasicTextFlow.kt布局组件、FlowShape.kt与FlowSlots.kt形状定义与作用域Material3 封装combo-breaker-material3/src/main/java/dev/romainguy/text/combobreaker/material3/TextFlow.kt提供了可直接使用的TextFlow接口可交互 Democombo-breaker-demo/src/main/java/dev/romainguy/text/combobreaker/demo/ComboBreakerActivity.kt所有示例代码均出自这里可直接抄作业总结用TextFlowflowShape几行声明式代码就能在 Compose 中实现过去只有原生 View 时代才容易做到的报纸级「图文环绕排版」——任意形状、多栏、对齐与断行一应俱全。对于新闻阅读器、杂志类 App 这类重排版场景Combo Breaker 是当下 Compose 生态里非常值得引入的排版利器。【免费下载链接】combo-breakerText layout for Compose to flow text around arbitrary shapes.项目地址: https://gitcode.com/gh_mirrors/co/combo-breaker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/24 14:26:26

零基础速学SolidWorks2026【草图】实战建模一

目录 绘制方口底座3D建模 一、底板绘制 1.绘制底板轮廓 2.镜像底板实体 3.底板尺寸拉伸 4.重新找基准面 二、后方 U 型立板绘制 1.绘制U形立板轮廓 2.圆角处理 3.全选镜像实体 4.绘制中心矩形 5.U形立板尺寸拉伸 6.重新找基准面 三、前方圆柱凸台绘制 1.绘制圆轮…

2026/8/24 14:26:26

微服务问题:服务拆分边界模糊

一、 这个问题到底是什么 这个问题在微服务架构演进中极为典型,其本质是“伪微服务”或“技术分层拆分”反模式。 表面现象:按技术层(Controller/Service/DAO)或纯包名(order.service、order.dao)拆分服务。…

2026/8/24 14:26:26

2026年AI大模型爆发,小白程序员看这里,Agent开发工程师是未来!

本文分析了2026年AI大模型应用开发领域的发展趋势,指出AI Agent开发工程师是当前前景最好的岗位,具有增速快、薪资高、天花板广等优势。文章详细介绍了AI Agent开发工程师的核心工作、前景逻辑、薪资参考和入行门槛,并对比了其他相关岗位的价…

2026/8/24 14:26:25

小程序/APP制作

完整的快速上手教程 https://www.bilibili.com/video/BV1W7QZYMEus/?spm_id_from333.33.top_right_bar_window_default_collection.content.click npm更换国内镜像源 在项目终端依次输入 npm get registry https://registry.npmmirror.com/ npm config set registry https:/…

2026/8/24 14:21:25

AI时代生存指南:程序员如何不被大模型取代?速收藏!

本文讲述了程序员张伟在AI技术快速发展下被公司裁员的故事,揭示了AI对传统编程岗位的冲击。文章指出,AI工具能大幅提升开发效率,导致企业减少对传统程序员的依赖。同时,AI岗位需求激增,薪资大幅提高。文章呼吁程序员积…

2026/8/24 0:07:22

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 1:12:32

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 1:09:25

3条命令跑通LocalAI:无GPU本地AI引擎部署

3条命令跑通LocalAI:无GPU本地AI引擎部署 【免费下载链接】LocalAI LocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required. 项目地址: https://gitcode.com/GitHub_Trending/lo/LocalAI…

2026/8/24 1:09:25

AI推理性能测试怎么做:MLPerf Inference完整上手指南

AI推理性能测试怎么做:MLPerf Inference完整上手指南 【免费下载链接】inference Reference implementations of MLPerf inference benchmarks 项目地址: https://gitcode.com/gh_mirrors/inf/inference 同一个模型换一张卡,速度快多少你知道吗&a…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/23 6:14:43

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/23 4:22:01

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…