equationl
Home
App
博客
摄影
关于
搜索
隐云小屋
推荐分类
一种生活 (97)
一次学习 (95)
一段娱乐 (11)
推荐文章标签
提桶日记 (73)
安卓 (59)
compose (39)
存档计划 (12)
arduino (10)
闲谈 (9)
kotlin (8)
摄影学习 (8)
车 (7)
其他技术 (4)
a7c (3)
flutter (2)
ios (2)
micropython (2)
推荐文章合集
第一次工作记录 (73)
Compose-不止是安卓 (38)
踏入光影 (9)
安卓与串口通信 (7)
车钥匙改装 (7)
Blogs
共有96篇文章
这是我的博客首页。
Android Bitmap.compress 方法返回 false 的一个可能原因
2022-10-17 09:41:50
需要阅读5分钟
存档计划注:原文于 2021.07.27 发布于 CSDN ;在搬运回博客时略做修改。 前言 最近在解决一个遗留已久的BUG时,发现调用 Bitmap 的 compress 方法将 bitmap 导出到文件流时,如果导出的 bitmap 特别大且导出编码为 Bitmap.CompressFormat.JPEG 的话该方法会直接返回 false 而没有抛出任何错误。 而对于同一个 bitmap ,改用 Bitmap.CompressFormat.PNG 就不会返回 false 而是能正常导出。 原因 懒得看分析过程的可以直接看这里。 经过我的分析,导致 compress 方法返回 false 的原因可能是 jpg 编码格式对于分辨率有最大限制。 这个最大限制为: 655,35 X 655,35 但是我使用模拟......
一次学习
安卓
存档计划
自定义 Compose 的 TextField,实现各种酷炫的文本框效果
2022-10-14 13:02:01
需要阅读5分钟
前言 在 Compose 中如果我们想要实现文本输入框的话,一般都是使用 Material 包中的 TextField 或者 OutlinedTextField 。 但是因为这两个组件都是属于 Material 包中的,自然是需要符合 Material 设计规范的,这也就会导致使用他们会丧失很多灵活性。 如果我们想自己实现一些不符合 Material 规范但是很酷炫的效果,亦或是其他设计风格,那继续使用 TextField 或者 OutlinedTextField 将会变得非常痛苦,甚至没法实现。 好在,Compose 提供了一个名为 BasicTextField 的组件,这个组件比上面两个级别更低(上面两个位于 androidx.compose.material 包,而它位于 androidx.compose.foundation.text 包)......
一次学习
Compose-不止是安卓
安卓
compose
在安卓中实现读取Exif获取照片拍摄日期后以水印文字形式添加到照片上
2022-10-12 15:09:17
需要阅读9分钟
前言 正如我在某社交平台上填写的简介: 标准理工科直男一枚,喜欢骑行,最近在研究摄影 摄影是我最近在研究的新技能点。 不久之前,我在尝试拍摄延时摄影时发现一个问题,使用相机拍摄时都无法在机内添加水印。(废话,哪个摄影会给照片打水印啊喂) 而我想将拍摄的延时照片每一张都加上拍摄时间的水印,以此增加合成的视频趣味性。(技术不够,花活来凑) 不过好在相机的图片文件 Exif 信息够丰富,其中就包括了拍摄时间。 但是,如果使用后......
一次学习
Compose-不止是安卓
安卓
compose
初探 Compose for Wear OS:实现一个简易选择APP
2022-10-11 12:59:23
需要阅读10分钟
前言 俗话说,人生有三大难题:早上吃啥、中午吃啥、晚上吃啥。 这个问题一度困扰着无数的人,直到一款帮你选择吃什么的神器《今天吃啥》出现,人们再也不用为了每天吃啥而犯愁了。 哈哈,以上纯属抖机灵。 最近访问谷歌开发者官网时发现首页 Banner 改成了 Wear OS 专题,其中有一项就是 Compose for Wear OS,恰好最近在学习 Compose ,于是我就摩拳擦掌跃跃欲试。但是我的学习风格是在做中学,以实际项目作为载体来学习,那么这次做一个什么呢? 想了想,可以做一......
一次学习
Compose-不止是安卓
安卓
compose
Compose太香了,不想再写传统 xml View?教你如何在已有View项目中混合使用Compose
2022-10-09 11:04:49
需要阅读6分钟
前言 在我的文章 记一次 kotlin 在 MutableList 中使用 remove 引发的问题 中,我提到有一个功能是将多张动图以N宫格的形式拼接,并且每个动图的宽保证一致,但是高不保证一致。 在原本项目中我使用的是传统 view 配合 RecyclerView 和 GridLayout 布局方式进行拼图的预览,但是这会存在一个问题。 实际上是这样排列的: 但是预想中应该是这样排列: 可以看到,我们的需求应该是完全按照顺序来排列,但是瀑布流布局却是在每一行中,哪一列的高度最小就优先排到哪一列,而不是严格按照给定顺......
一次学习
Compose-不止是安卓
安卓
compose
以不同的形式在安卓中创建GIF动图
2022-10-08 09:13:29
需要阅读5分钟
前言 在我的项目 隐云图解制作 中支持多种不同的方式生成 GIF 动图,例如直接录屏生成GIF、通过图片合成GIF、通过GIF合成GIF、从视频中截取任意位置时长的GIF。 本篇文章中我们将对这些方法进行拆解并附上实现代码,以供有需要的读者使用。 实现方法 我们实现生成动图的需求依旧需要依赖于使用 FFmpeg 和 Gifsicle 这两个库,不知道怎么在安卓中使用这两个库的,可以看看我之前的文章,其中有说明。 使用图片合成GIF GIF动图可以简单的......
一次学习
安卓
跟我一起使用 compose 做一个跨平台的黑白棋游戏(4)移植到compose-jb实现跨平台
2022-10-06 21:02:55
需要阅读5分钟
前言 在上一篇文章中,我们已经实现了游戏的所有界面和逻辑代码,并且在 Android 上已经可以正常运行。 这篇文章我们将讲解如何将其从使用 jetpack compose 修改为使用 compose-jb 从而实现跨平台。 老规矩,先看效果图: 可以看到,桌面端效果和移动端几乎没有差别,而且在移植过程中几乎没有修改代码,几乎就是直接复制过来就可以用了。 移植过程 准备工作 在开始之前,我们需要换一下 IDE,不再使用 Android Studio 而是改为使用 IntelliJ IDEA 。 其实这里直接使用 Android Studio 也是完全没问题,毕竟......
一次学习
Compose-不止是安卓
安卓
compose
跟我一起使用 compose 做一个跨平台的黑白棋游戏(3)状态与游戏控制逻辑
2022-10-05 10:11:08
需要阅读8分钟
前言 在上一篇文章中,我们已经完成了黑白棋的界面设计与编写,今天这篇文章我们将完成状态控制和游戏逻辑代码的编写。 正如第一篇文章所述,在本项目中,我们需要实现不依赖于平台的状态管理,也就是使用 Flow 和 composable 来实现。 另外,还是再声明一下,这个项目的 AI 算法来自于 reversi 项目。 老规矩,先上游戏效果: (ps:哈哈,这个GIF原本有8mb,但是我给压缩成了300kb,而且还是在没有改变分辨率和帧率的情况下,画质的损失也还能接......
一次学习
Compose-不止是安卓
安卓
compose
跟我一起使用 compose 做一个跨平台的黑白棋游戏(2)界面布局
2022-10-04 11:54:35
需要阅读6分钟
前言 在上一篇文章中,我们讲解了实现这个游戏的总体思路,这篇文章我们将讲解如何实现游戏界面。 本文将涉及到 compose 的自定义绘制与触摸处理,这些内容都可以在我往期的文章中找到对应的教程,如果对这部分内容不太熟悉的话,可以翻回去看看。 实现过程 效果预览 界面分析 我们想要实现的界面分为三个大部分: 顶部的游戏信息界面:在这个界面中标识当前棋子与棋手信息以及对局信息 中间的游戏棋盘 底部控制按钮 其中,1 和 3 都可以使用基础的 compose......
一次学习
Compose-不止是安卓
安卓
compose
基于Gitee的webhook编写hugo的自动构建实现博客自动更新
2022-09-30 14:20:46
需要阅读4分钟
前言 差不多半年前趁着某云优惠,我买了5年的轻量级应用服务器。 拿着这个服务器原本打算做我的某个APP的服务端的,后来又觉得迁移数据好麻烦,所以随便搞了个博客上去。 选来选去,使用了 hugo 作为构建引擎。 正好,那时我刚从某流水线提桶跑路没多久,就琢磨着记录一下我的提桶生涯。 但是提桶生涯的文章太多了,足足有70多篇,如果每次更新都手动登录服务器构建或者在在本地构建完成后上传静态页面上去太麻烦了。 所以,我将所有文......
一次学习
其他技术
««
«
1
2
3
…
5
6
7
…
10
»
»»