前言 大约在一年半前,我发布了Compose的第一篇文章 Jetpack Compose开篇 之 HelloWorld,连我自己也没想到,这一年半的时间中我竟再也没有看过Compose..., 如今Compose...已经发布了稳定版本,还没学会Compose让我的头发又白了许多~ 使用Navigation在Compose中导航 如果你之前不喜欢Android提倡的”单Activity“应用,那么在Compose中相信你会慢慢习惯的...接下来我们来看,如何使用navigation来进行页面导航呢?..."/"拼写在路由地址后面添加占位符即可,默认情况下,所有的参数都会被解析成字符串,所以我们可以使用arguments来为参数指定type类型。...总结 除此之外,Navigation 在Compose中还支持深层链接等,关于Compose的更多用法,欢迎持续关注我~
前言 本文使用OkDownloader进行文件下载 https://github.com/ydxlt/okdownloader https://ydxlt.github.io/okdownloader/...DownloadItem) fun onFailure(downItem: DownloadItem) fun onLoading(downItem: DownloadItem) } 使用
一、简介 Jetpack Compose是Google推出的用于构建原生界面的新Android 工具包,它可简化并加快 Android上的界面开发。...三、Jetpack Compose动画 Jetpack Compose提供了一些功能强大且可扩展的 API,可用于在应用界面中轻松实现各种动画效果。...下文将会对Jetpack Compose Animations的常用方法进行介绍。...Compose 已将动画简化到只需在我们的可组合函数中创建声明性代码的程度,只需编写希望 UI 动画的方式,其余部分由 Compose 管理。...Jetpack Compose提供的声明式UI工具包,能做到使用更少的代码实现更多的功能,且代码的可读性和逻辑性也大大提高了。 作者:vivo互联网游戏客户端团队-Ke Jie
简介 Jetpack Compose 是用于构建原生 Andorid 界面的新工具包,Compose 使用了更少的代码,强大的工具和直观的 Kotlin Api 简化并且加快了 Android 上界面的开发...在 Compose 中,在构建界面的时候,无需在像之前那么构建 XML 布局,只需要调用 Jetpack Compose 函数来声明你想要的的元素,Compose 编译器就会自动帮你完成后面的工作。...Compose 是一个声明性的界面框架。 重新生成整个屏幕所面临的一个难题是,在时间,计算力和电量方面可能成本高昂,为了减轻这一成本,Compose 会智能的选择在任何时间需要重新绘制界面的那些部分。...重组 在 Compose 中,你可以用新数据再次调用某个可组合函数,这回导致组合函数重新进行重组。系统会根据需要使用新数据重新绘制发出的微件。Compose 框架可以只能的重组已经更改的组件。...但实际上未必是这样。如果某个可组合函数包含对其他组合代码的调用,这些函数可以按照顺序执行。 Compose 可以选择识别出某些界面元素的优先级高于其他界面元素,因此首先绘制这些元素。
【Android】Android中 Paint 字体、粗细等属性的一些设置 在Android SDK中使用Typeface类来定义字体,可以通过常用字体类型名称进行设置,如设置默认黑体: Paint mp...一个小应用,在图片上绘制文字,以下是绘制文字的方法,并且能够实现自动换行,字体自动适配屏幕大小 private void drawNewBitmap(ImageView imageView, String...建立一个空的Bitmap Bitmap icon = Bitmap.createBitmap(width, hight, Bitmap.Config.ARGB_8888); // 初始化画布绘制的图像到...icon上 Canvas canvas = new Canvas(icon); // 建立画笔 Paint photoPaint = new Paint(); // 获取更清晰的图像采样...canvas.translate(start_x, start_y); staticLayout.draw(canvas); } 以上这篇Android 使用Canvas在图片上绘制文字的方法就是小编分享给大家的全部内容了
好处 Compose 编译后不是转化为原生的 Android 上的 View 去显示,而是依赖于平台的Canvas ,在这点上和 Flutter 有点相似,简单地说可以理解为 Compose 是全新的一套...教程,使用State让界面动起来 原创:写给初学者的Jetpack Compose教程,Lazy Layout Composable 告诉编译器:此函数旨在将数据转换为界面。...这些可组合项只会呈现屏幕上显示的元素,因此,对于较长的列表,使用它们会非常高效。...它控制了视图在屏幕上的显示顺序。具有较高 zIndex 值的视图将显示在具有较低 zIndex 值的视图之上。 默认情况下,视图的 zIndex 值为0。...当两个视图的 zIndex 相同时,它们将按照它们在布局文件中的顺序进行绘制。 通过调整视图的 zIndex 属性,您可以控制视图的叠加顺序,从而达到覆盖或隐藏其他视图的效果。
大家好,写给初学者的Jetpack Compose教程又更新了。...上一篇文章中,我们学习了Compose的基础控件和布局,还没有看过上一篇文章的,请参考 写给初学者的Jetpack Compose教程,基础控件和布局 。...Modifier的作用 开篇就来回答一下刚才提出的问题,我们在使用Compose编写界面的时候,到底什么功能应该使用Modifier参数来完成,而什么功能又要使用其他参数来完成呢?...在 写给初学者的Jetpack Compose教程,为什么要学习Compose? 这篇文章当中,我有提到重组这个概念。...在Android开发者官网有这样一个例子,比如你使用底层API自行绘制了一个日历界面,如下图所示: 那么当用户选中了17号这天的时候,系统不会发音你选中了17号,而是可能最多只会发音你选中了日历。
引言 Jetpack Compose 作为 Google 近期主推的 Android 开发 UI 框架,得益于其声明式编程的思想以及协程的加持,让 Compose 在开发过程中非常的舒适。...知识储备: 我希望你在阅读本文前对 Kotlin 协程、Jetpack Compose 基础都有一定的了解~ 一、我为什么喜欢用 Compose 写动画?...1.1 声明式编程 得益于声明式编程的优势,在大多数的动画类型的选择上,你不需要像原来那样在帧动画、补间动画和属性动画中选择太久;也不需要纠结用 XML 动画还是使用 Animation 类;...而在 Compose 声明式编程的世界里,你只需要在原来的代码基础上,对指定的属性做动画就可以了,让我们来感受一下。...1.3 工具的支持 IDE 对 Compose 动画进行了工具上的支持。
前言 Jetpack Compose 提供了一系列用于构建用户界面的布局组件,这些组件可以帮助您创建各种复杂的布局结构。...对应关系 View Jetpack Compose FrameLayout Box& Modifier RelativeLayout Box & Modifier LinearLayout Row, Column...您可以使用 contentAlignment 属性来指定子元素的对齐方式。...默认 您可以使用 verticalArrangement 属性来指定子元素的垂直排列方式,使用 horizontalAlignment 属性来指定子元素的水平对齐方式。...功能和用途: Surface 是一个基本的容器,用于在屏幕上绘制内容。它提供了绘制颜色、形状、边框等的基本功能。 通常用于创建自定义的UI元素,例如背景、容器等。
前言 除了布局组件外,Jetpack Compose 还提供了一系列其他常用的 UI 组件。...https://developer.android.google.cn/jetpack/compose/components?....wrapContentSize(Alignment.Center), textAlign = TextAlign.Center, maxLines = 1 ) 按钮 基本使用...Text("文字") } } 隐藏键盘 val keyboardController = LocalSoftwareKeyboardController.current // 在需要隐藏键盘的地方调用这个函数...组件本质都是方法,所以可以使用提取方法来提取组件 快捷键:Ctrl+Alt+M
()中设置xml即可,由于布局是一次性加载的,即生成View树的过程是同步进行的 1.2 compose UI 对与compose而言,每个可组合函数(组件)的调用可能发生在与调用方不同的线程上,即每个组件添加至...compose,也可以查看官方文档-快速入门:https://developer.android.google.cn/jetpack/compose/setup 1.创建项目 我这边尝鲜使用MD3风格的项目...在xml中,我们常常会使用资源id获取到资源文件,比如:color、drawable、string等,在compose中,通过以下函数获取,这些函数都位于androidx.compose.ui.res...推荐使用md主题设置dimen,用的也不多 四、标准控件 compose本身内置了一些组件,官方说法所有组件都是可组合函数,这边仅仅是便于传统开发理解,分成控件和布局来介绍,这些内置可组合函数分散在各个不同的库组内.../jetpack/compose/text 1.1 基本使用 所有compose函数都要由@Composable注解,并且每个可组合函数都是可以重用的组件: @Composable @Preview fun
但以防还有一部分开发人员还没有使用过它,或者有开发新人不了解JetPack Compose,这里还是做一下简单介绍。...JetPack Compose Jetpack Compose 是Google在2019年发布的一个Android原生现代UI工具包,它完全采用Kotlin编写,可以使用Kotlin语言的全部特性,可以帮助你轻松...如果说在19年JetPack Compose刚问世的时候还存在许多问题,大多数开发人员都持观望态度,但现在马上迎来22年,JetPack Compose经过了很多个版本的更新,变化非常大,对于更多的开发者来说...这些组件可帮助你遵循最佳做法、让你摆脱编写样板代码的工作并简化复杂任务,以便你将精力集中放在所需的代码上。...Animatable Compose自定义动画 [image.png] 第六章 Compose图形 Compose Canvas Compose 绘制API的分析 Compose自定义绘制 [image.png
前言 Compose是Android官方提供的声明式UI开发框架,而Compose Multiplatform是由JetBrains 维护的,对于Android开发来说,个人认为学习Jetpack Compose...今天我们先来了解一下使用compose-jb开发一个桌面端应用的流程。 接下来还会有第二弹,第三弹......文件中,入口处调用了App()方法,App方法中绘制了一个按钮,运行程序,结果如下图所示。...这部分代码相信使用过Jetpack Compose的都可以看得懂。 运行程序,点击X号,弹出退出确认弹窗,点击确定,应用程序将退出。效果如下图所示。...写在最后 当然,在Compose For Desktop中还有许多的组件,比如Tooltips、Context Menu等等,这里无法一一介绍,需要我们在使用的时候去实践,我们将在后面的N弹中持续探索.
作者 / 开发者关系工程师 Jeremy Walker 在今年的 Google I/O 大会 上,我们宣布将 Jetpack Compose 的优秀特性引入 Wear OS。...除此之外,您在使用 Jetpack Compose 构建移动应用的经验,也可以直接运用在 Wear OS 版本上。...就像在移动设备上一样,欢迎您立即着手测试,我们也希望在发布 Beta 版前,将您的 反馈 纳入库的早期迭代中。 本文将回顾我们构建的几个主要可组合项,并介绍帮助您开始使用的多种资源。 现在就开始吧!...这就意味着面向 Wear OS 设计时,您搭配 Jetpack Compose 使用的许多依赖项不会发生变化。例如,UI、运行时间、编译器和动画依赖项都将保持不变。...尽管从技术上说,可以在 Wear OS 上使用移动依赖项,但我们还是建议您使用专用于 Wear 的版本以获取最佳体验。 注意: 我们将在未来版本中添加更多 Wear 可组合项。
作者 / Jolanda Verhoef,开发者关系工程师 我们 在 2019 年推出了卡片,从那时起,该功能便成为 Wear OS by Google 谷歌智能手表上最实用的功能之一。...卡片访问速度快,使用便捷,且设计为可滑动访问,用户可直接在手腕上了解所需资讯及待办事项。同时,卡片也可以让用户控制想了解的信息和操作。 我们很高兴宣布 Jetpack 卡片库 将推出 Alpha 版。...开发者可以使用该库在 Wear OS 智能手表上创建自定义卡片。我们将在今年晚些时候推出相应的 Wear OS 平台更新,届时用户便能使用此类自定义卡片。...image.png 开始构建 卡片使用 Android Studio 构建,是 Wear OS 应用的一部分。...Jetpack 卡片库已推出 Alpha 版,期待收到 您的反馈,帮助我们改进 API。乐享编码!
当然,Compose 也是属于 Jetpack 工具库中的一部分,官方宣称可以简化并加快 Android 上的界面开发,可以用更少的代码去快速打造生动而精彩的应用。...所以,Compose 也支持添加到现有的项目中进行使用。 3.1 配置 Kotlin 和 Gradle 需要确保项目中使用的 Kotlin 版本在 1.5.10 及以上。...Compose 通过调用 Composable 函数可以将 data 数据展示在 UI 上,Compose 本身也提供了工具去观察 data 数据的变化,从而可以自动地回调展示 UI,这一过程官方称为重组...会识别出哪些界面元素的优先级高于其他的界面元素,从而优先绘制这些元素。...参考文献 Jetpack Compose 1.0 正式发布!
Compose 在暗夜模式支持方面也做的不错。...中的色值来设置,那么需要注意的是,Compose 默认的可组合项中常见的情况是在浅色模式中将容器设为 primary色值,在暗夜模式中将其设为 surface色值,许多组件默认都是使用这种模式,例如TopAppBar...,同时通知 Compose 进行重组,这样就使用新的色值集合进行渲染了。...关于 MutableState状态的相关知识,可以查阅我的另一篇文章:Jetpack-Compose 学习笔记(五)—— State 状态是个啥?又是新概念?...Android Jetpack Compose 实现主题切换(换肤);九狼 https://juejin.cn/post/7057418707357663246 Jetpack Compose -
Android Jetpack 的支持 在 Compose 刚刚发布的时候,Android Jetpack 中的很多其他库都第一时间给予了 Compose 支持,从而丰富了 Compose 的开发生态。...目前,能够直接在 Compose 上使用的 Jetpack 库有:Navigation、Paging、ViewModel、LiveData、hilt 、lifecycle 理论上来讲,Android Jetpack...上跟 UI 不相关的库 Compose 应该都是支持的,在我写的Hoo中,就使用了Paging、Navigation、ViewModel和LiveData等 Android Jetpack 库,再有协程和...在谷歌官方的 《Jetpack Compose 使用前后对比》 一文说道:Tivi应用在使用了 Compose 后,我们发现 APK 大小缩减了 41%,方法数减少了 17%。...Jetpack Compose应用做一个倒计时器 数据结构 倒计时功能 状态模式 Compose 布局 绘制时钟 4.
本上,OCR(光学字符识别)引擎可以让你从图片或文件(PDF)中扫描文本。默认情况下,它可以检测几种语言,还支持通过 Unicode 字符扫描。...因此,gImageReader 就来解决这点,它可以让任何用户使用它从图像和文件中提取文本。 让我重点介绍一些有关它的内容,同时说下我在测试期间的使用经验。...将提取的文本导出为 .txt 文件 跨平台(Windows) 在 Linux 上安装 gImageReader 注意:你需要安装 Tesseract 语言包,才能从软件管理器中的图像/文件中进行检测。...gImageReader 使用经验 当你需要从图像中提取文本时,gImageReader 是一个相当有用的工具。当你尝试从 PDF 文件中提取文本时,它的效果非常好。...我在 Linux Mint 20.1(基于 Ubuntu 20.04)上试过。 我只遇到了一个从设置中管理语言的问题,我没有得到一个快速的解决方案。
小编推荐Super Vectorizer 2 for Mac,它可以自动将JPEG、GIF和PNG等位图图像转换为AI、SVG、DXF和PDF格式的矢量图,使用非常便 步骤 1: 在 Mac 上打开...导入图像的 3 种方法: 方法一:直接拖拽你的图片到Mac工作区的Super Vectorizer; 方法二:点击“导入”,在应用的预览面板中打开一张图片; 方法三:点击文件菜单,然后点击导入或按...步骤 2: 将图像矢量化结果导出到您的 Mac 导入图像后,矢量化工作流程将自动开始,您可以立即查看图像矢量化结果。最后一步是在图像矢量化完成后导出结果。...在 Mac 上单击“导出”可将矢量图像保存为 Ai、SVG、DXF 或 PDF。...步骤 3: 重新打开矢量图像以进行进一步编辑 重新打开您的矢量图像以在 Windows 或 Mac 应用程序中进一步编辑,例如 Adobe插图、CAD、PixelStyle 照片编辑器……
领取专属 10元无门槛券
手把手带您无忧上云