Jetpack Compose 实现下拉动态渐变切换布局
在本文中,我们将基于 Jetpack Compose 自定义布局,实现一个下拉动态渐变切换布局。最终实装的效果如下:
效果图(UI 布局部分参考自谷歌翻译)
更细致的描述,就是 A 页面下拉拖动时,B 页面开始从某一位置淡出,直至覆盖全屏。最终实现的布局代码,格式化后的代码不超过 70 行,一定程度上也体现出 Jetpack Compose 中自定义布局的简洁性。
您可以到 这里 下载 APK 体验上图效果
前置知识阅读本文可能需要您拥有一定的相关知识,比如:
熟悉 Kotlin 的基本语法,比如高阶函数等
对 Jetpack Compose 有一定了解,比如自定义布局的基本流程、Modifier 的使用等
如果您对上述知识不了解,可以参考 官方教程、Android Developer 频道相关视频 或 Compose-Museum。
此布局细节上图所示的应用 中,具体的页面变化如下:
开始时:
页面有一个 Main,其中又分为了 Upper(上面的背景)和 Lower(下面的功能栏) 两个部分,当开始拖动时,前景的初始大小为 MainUpper 的大小(与它重叠)。
拖动 ...
23年6月最新ChatGPT Plus购买保姆级教程(亲测可用,非 Depay)
先放一张成功的截图作为开头
前天晚上绑的卡,到现在也没问题,故而分享一下。
前言ChatGPT Plus 不支持国内信用卡支付,这一点其实难倒了不少人。之前几个月有 Depay(现 Dupay) 的支付教程,但现在也用不成了。6月13号,我突然发现 OneKey 发了一张支持 OpenAI(ChatGPT)的卡(这个公司之前是做硬件加密钱包的,还是比较正规的),赶紧试了下成功了
准备你需要下面的东西作为必备条件:
一个谷歌账号
有能访问谷歌的方法,最好是干净的IP
开始注册 OneKey去 OneKey 官网 注册个账号,这一部直接拿谷歌账号登录即可,之后按要求完成 KYC 认证。(涉及到支付的都需要 KYC 认证,这也是保护大家的安全,目前没有渠道可以跳过,实在介意的可以退出了)选择开卡的时候找到下面的这张支持 ChatGPT 的卡按要求开就行。注意,这张卡可能是限量的,需要的尽快。 如果你的列表里没有,可以先开任意一张卡等待之后官方放新的卡,到时候余额可以任意划转。
首次开卡需要支付 30$(这里说一句,只有第一张卡需要,后面的都不需要了,冲完后钱在卡里面,你想怎么用就怎么用, ...
OpenAI(ChatGPT)注册时的 Puzzle 怎么玩
ChatGPT(OpenAI) 账号注册时的 Puzzle 怎么玩?笔者今天想注册 ChatGPT 账号的时候发现,发送电话号码前多了个验证,而且这个验证居然是玩个游戏。开始点了半天没弄明白,后来才搞懂。现在也分享下,希望帮到有不明白的同学
输入手机号后点击发送,然后你会看到下面的画面
点击两个箭头可以切换图片,直至图片上的火车到达横坐标为左图数字、纵坐标为左图图标的位置(朝向没有关系)即可
下面分别是错误和全部正确的情况
-
-
完。我的其他作品:https://web.funnysaltyfish.fun
蛮全的!面向实用主义的 AIGC 常见概念与应用介绍
前言AIGC 蓬勃发展,各种概念层出不穷,本文将对 AIGC 中常见的概念和应用进行介绍,力求简洁,更追求广度而不是深度,以便于大家更好的参与进这次浪潮。本文由 FunnySaltyFish 最初创作,不定期维护于 我的博客,转载请注明出处!鉴于本人水平有限,如有错误,欢迎指正!
本文包含大量链接,如果你对某个主题感兴趣,可自行跳转链接查看
基本概念AIGCAIGC 是 Artificial Intelligence Generated Content 的缩写,中文名为人工智能生成内容,包括文章、代码、图片、视频等等。
CUDACUDA(Compute Unified Device Architecture)是由NVIDIA推出的通用并行计算架构,它使GPU能够解决复杂的计算问题。CUDA包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA架构编写程序,所编写出的程序可以在支持CUDA的GPU上运行,从而加速计算。CUDA 需要 N 卡支持,如 RTX 4090。
PythonPython 是一种面向对象、解释型计算机程序设计语言,由 ...
Jetpack Compose + MVI 实现一个简易贪吃蛇
本文基于 Jetpack Compose 框架,采用 MVI 架构实现了一个简单的贪吃蛇游戏,展示了 MVI 在 Jetpack Compose 中的形式,并基于 CompositionLocal 实现了简单的换肤功能(可保存至本地)
点此下载 demo:app-debug.apk
运行效果
环境
Gradle 8.0,这需要 Java17 及以上版本
Jetpack Compose BOM: 2023.03.00
Compose 编译器版本:1.4.0
什么是 MVI
MVI 示例,图源 此文章
MVI 是 Model-View-Intent 的缩写,是一种架构模式,它的核心思想是将 UI 的状态抽象为一个单一的数据流,这个数据流由 View 发出的 Intent 作为输入,经过 Model 处理后,再由 View 显示出来。具体到本项目,View 是贪吃蛇的游戏界面,Model 是游戏的逻辑,Intent 是用户和系统的操作,比如开始游戏、更改方向等。
View层:基于 Compose 打造,所有 UI 元素都由代码实现
Model层:ViewM ...
一条咸鱼的2022 | 掘金 & 开源 & 项目
Hi 各位好,我是咸鱼。第一次尝试动笔,总结过去的一年,也算一种奇妙的感受吧。
咸鱼我的 ID 是 “FunnySaltyFish”,直译过来是 “有趣的咸鱼”,或者 “滑稽的咸鱼”。这当然带有一点自嘲的属性。做一条咸鱼代表着我的生活态度:不做计划、没有规划、过一天是一天;但也有另一方面:也不能一直躺着,躺久了这一面就糊了,总该翻翻身,做点什么。于是便想想回忆一下,看看过去一年终究是做了些什么。
掘金如果翻看我的文章列表,第一篇的时间定格在2020年8月。那是我主要混迹于 C**N,偶然间了解到掘金这个平台,于是便随手注册了个账号,丢了两篇文章过来。现在回过头看,那两篇文章都创作于我的高中时期,还是用手机码出来的,字里行间承载着属于年轻人独特的骚气,也算是某种程度的黑历史了(笑)。正式开始在掘金写作要到 2021年7月,那时恰逢 Jetpack Compose 发布 Beta 版,我开始接触这一新技术。彼时国内关于这方面的中文资料非常少(可以说是几乎没有),而我又受够了 C**N 漫天垃圾的氛围,于是便跑到之前偶然注册的掘金,想着看一看。令人惊奇的是,我之前随意投稿的两篇文章竟然都被推 ...
Jetpack Compose 十几行代码快速模仿即刻点赞数字切换效果
缘由四点多刷掘金的时候,看到这样一篇文章:自定义View模仿即刻点赞数字切换效果,作者使用自定义绘制的技术完成了数字切换的动态效果,也就是如图:
两图分别为即刻的效果和作者的实现
不得不说,作者模仿的很像,自定义绘制玩的炉火纯青,非常优秀。不过,即使是这样简单的动效,使用 View 体系实现起来仍然相对麻烦。对上文来说,作者使用的 Kotlin 代码也达到了约 170 行。
Composable如果换成 Compose 呢?作为声明式框架,在处理这类动画上会不会有奇效?
答案是肯定的!下面是最简单的实现:
12345678910111213Row(modifier = modifier) { text.forEach { AnimatedContent( targetState = it, transitionSpec = { slideIntoContainer(AnimatedContentScope.SlideDirection.Up) with ...
Jetpack Compose 上新:瀑布流布局、下拉加载、DrawScope.drawText
不久前,Jetpack Compose 发布了 1.3.0 正式版。经过一年多的发展,再回头去看,Compose 终于带来了缺失已久的瀑布流布局以及DrawScope.drawText方法。本文就简单介绍一下。截止此文写作时,Jetpack Compose 的最新 stable 版本为 1.3.1,而查阅 Compose 与 Kotlin 的兼容性对应关系 文档可知,此版本对应的 Kotlin 版本为 1.7.10。如需尝试部分代码,请确保对应版本设置正确。
BOMCompose Bill of Materials 是 Compose 最近带来的新东西,它能帮你指定 Compose 各种库的版本,确保各个 Compose 相关的库是项目兼容的(但并不引入对应的库)。具体来说,当你在 build.gradle 中引入 BOM 后
12// Import the Compose BOMimplementation platform('androidx.compose:compose-bom:2022.10.00')
再引入其它 Compose 相关的库就不需要手动指定版 ...
Python 3.11.0 正式发布!主要新特性一览
去年(2021)的 10 月份,Python 发布了 3.10.0 正式版,我也在第一时间做了介绍(相关文章);一年后的几天前,Python 3.11.0 正式版也亮相了。目前的下载链接:https://www.python.org/downloads/release/python-3110/下面就让我们看一下主要的新特性吧。
快3.11 带来的最直观变化就是,Python 更快了。官方的说法是能带来 10%~60% 的提速,在基准测试上平均达到了 1.22x。更细致的介绍请参见 What’s New In Python 3.11 — Python 3.11.0 documentation。
下面摘录其中部分提升
操作
形式
限定
最大加速
贡献者(们)
二元运算
x+x; x*x; x-x;
Binary add, multiply and subtract for common types such as int, float, and str take custom fast paths for their underlying types.
10%
Mark Sha ...
入坑 Jetpack Compose :写一个简单的计算器
本文是一个综合的Compose小例子,涉及动画、自定义布局、列表等主题。本文并非教程,只是展示展示Compose开发应用是什么感觉,并试图拉人入坑。如果你还没接触过,不妨进来扫一扫代码,读一读单词,感受感受~本文所展示的思路仅为个人想法,并不代表最优解,也欢迎一起探讨
前言8月份的时候,我关注了 fundroid 大佬的公众号,看到历史推文中有这么一篇,内容是Compose学习挑战赛,要求为“实现一个计算器 App”。正好自己对Compose有过一点经验 (这个可以点开头像看历史文章),抱着试试看的态度,我花大概4-5h完成并提交了作品。尽管作品比较简单,但结果还是不错的(补充:看了看评论区大佬的图,发现这是个参与纪念奖 hhh):几天前,我收到了Google发来的这封邮件:
既然文章都写完了,那还是厚着脸皮留着吧所以就简单介绍下吧,或许也可以当做非常入门的小案例,说不定能帮到些人、拉入点坑。本文源码地址见文末
效果可以看到,尽管开发的时间并不长,但是基本的小功能也还是有的。计算的时候也会有点简单的小动画,还适配了横屏的布局。顺带一提,由于Compose天然的特性,项目还自动适配 ...