自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 收藏
  • 关注

原创 在compose中实现下拉刷新

在compose中存在现成的下拉刷新的控件,但是因为compose中还在持续更新中,一直出现无法导入包的问题,我是使用BOM进行版本控制,,但是一直无法确定使用那个版本才可以用,我使用的是2024.10.00的版本,查看该版本详情可知:androidx.compose.material3:material3的包使用的是1.3.0的版本,感觉项目使用的版本进行设置。

2025-11-04 13:35:41 216

原创 使用compose实现签名、签名缩放、签名转为图片实现

本文介绍了使用Compose实现签名绘制功能的技术方案。主要内容包括:1)通过Canvas绘制"米"字虚线辅助线,详细解析了drawLine方法及其路径效果参数;2)实现签名绘制功能,通过pointerInput和onSizeChanged监听实现边界限制,确保签名不超出规定范围。文章还展示了最终效果图,包括签名界面和转换后的图片效果。关键技术点涉及路径绘制、手势检测和边界处理等Compose图形绘制技巧。

2025-10-14 14:45:05 347

原创 retrofit中,token可选

我们可以自定义一个注解,用来标记某个请求是否需要跳过认证。自定义一个注解,例如@NoAuth。在拦截器中检查请求的注解,如果有这个注解,就添加No-Auth头。2、 在拦截器中:3、在接口方法上使用注解:这样,当调用getSomethingWithoutAuth时,拦截器会检测到@NoAuth注解,然后添加No-Auth头。

2025-10-11 10:21:32 300

原创 使用compose和WheelView实现仿IOS中的3D滚轮控件-三级联动

本文介绍了Android省市区三级联动选择器的实现方法。主要包含:1)资源准备,包括行政区划数据和PickerView库;2)解决导入wheelview模块时的常见问题;3)JSON数据解析,提供两种数据结构转换方式;4)使用Compose实现三级联动界面,通过WheelView控件展示各级选项。关键点包括修改gradle配置、处理JSON数据结构和Compose与原生View的交互。实现效果为一个可滚动选择省、市、区三级的联动选择器,支持数据动态更新和选择回调。

2025-10-10 16:27:46 1312

原创 Android小工具:使用python生成适配不同分辨率的dimen文件

在适配不同分辨率的设备中,对于一个dimen需要写多个文件,就感觉很繁琐,发现使用python直接提高效率,不需要做一些无用的工作,每次修改的时候也只需要修改一个设备的文件就可,修改结束后再重新运行一下脚本就好了,需要注意的是,如果基准文件dimen为480dpi,但是又有一个480,那么直接运行代码时候,修改基准文件dimen不会导致设备中变量修改,在调试阶段最好是不要有两个,可能有坑。,点击环境变量,对用户变量中的Path进行编辑,写入python的路径。手动配置的话就是,在搜索框中搜索“

2025-09-08 17:01:07 765

原创 compose重组的简单使用

​ 获取一个绑定到 Composable 生命周期的 CoroutineScope,用于在事件回调(如 onClick)中启动需要生命周期管理的协程。如果使用listState.add()是不会触发重组的,当然使用listOf无法使用add方法,使用mutableListOf才可以使用add方法。当listState 的值被重新赋值后,使用listState 的代码中会出现重组,例如。​ 用于需要清理的资源(如监听器、订阅)。fase中填写的可以是任意类型,在state的值变化后进行重组。

2025-09-03 18:00:05 861

原创 录屏截图SecurityException出错

使用MediaProjection在录屏过程中使用进行截图时,使用的创建两个VirtualDisplay用于录屏和截图,在vivo手机中截图是正常的,但是在小米手机中运行出现SecurityException问题,一开始还以为是小米手机的安全机制区别于其他品牌手机,但是后面发现小米手机的系统是Android15,而vivo手机的系统是Android13,但是也不能说明什么,我查阅Android官网,发现在 ​Android 7.0 (API 24)​就强化了该设置,后面还是换了一种方式进行实现,使用virt

2025-09-03 16:49:05 341

原创 使用Android Stdio直接获取SHA值

可以使用命令获取SHA值,但是获取失败了,所以我通过Android stdio直接获取。

2025-08-05 11:40:19 347

原创 android 小bug :文件冲突的问题

一个身份证模块识别的小bug,记录一下,这应该是第三次出现,每次出现都不太记得,还是得记录,不然都是重复检索的过程。

2025-07-24 15:38:36 555

原创 mediaRecord录屏:同时录制麦克风声音和系统声音

根据参考文件的代码,基本上是可以直接运行并实现的,我主要是记录一下实现步骤、、关键代码和遇到问题,在文章的最后一个部分会将所有的代码都粘贴出来。通过使用compose进行实现UI的实现。

2025-07-21 15:00:06 873

原创 git学习:首次创建仓库

本文总结了Git常用命令操作指南,包括仓库初始化、分支管理、配置查看等实用技巧。主要内容有:1)首次创建仓库的上传流程;2)分支的创建、切换、删除和同步操作;3)查看和修改Git配置信息;4)远程仓库管理命令;5)分支合并方法。文章还提供了常见问题的解决方案,如文件冲突处理和历史文件恢复。适合需要快速查阅Git命令的开发者参考使用,涵盖日常开发中的基本Git操作场景。

2025-07-08 14:55:59 1387

原创 3.1 compose学习:camerax在compose中拍摄

使用XML布局实现相机拍摄的简单,但是使用compose后,发现相机拍摄有点不太一样,就查看了Android官方示例进行实现,可以直接看Android中cameraX的示例,本文内容主要是记录并梳理。完整代码在最后面,不想看的可以直接看依赖和最后部分,进行复制。数据流StateFlow>(null)响应式编程(StateFlow和LiveData)中设置一个可变的私有变量和一个不可变的公开变量,方便封装。

2025-06-30 17:49:12 789

原创 3.0 compose学习:MVVM框架+Hilt注解调用登录接口

新开了一个项目之后,发现MVP框架的实现代码有点多了,就想说用MVVM框架进行实现,加上发现Hilt注解相对能够更好地解耦,学习了一下之后就想说需要应用到实际引用中,就写了个简单功能实现,虽然一个登录功能看着写的代码结构多了点,但是到后期功能不断增加之后就会发现,结构比较清晰,基本机构见图所示,使用MVVM框架实现登录效果,包括retrofit+ViewModel+Hilt注解+Compose的实现。

2025-06-24 17:54:47 841

原创 小bug记录:auto-value版本重复问题解决

项目遇到Duplicate class错误,原因是auto-value和auto-value-annotations版本不一致导致类重复。解决方法是在libs.Version.toml中屏蔽implementation(libs.androidx.room.compiler.processing.testing)的引用,避免版本冲突。该依赖对应的是Room编译器处理测试组件2.7.1版本。通过移除此依赖可消除重复类问题。

2025-06-23 10:12:39 159

原创 webView的简单实现

在compose中,没有一个直接的控件等同于xml中的WebView,只能通过AndroidView中设置WebView的形式进行实现) {// 禁用缓存// 不使用缓存,强制重新加载// 清除缓存// 启用垂直滚动条// 启用水平滚动条// 启用滚动// 启用滚动条隐藏//设置为可调用js方法// 启用缩放) {// WebView 加载完成后的回调// 加载URL// 将 WebView 嵌入到 Compose 中webView})

2025-06-20 14:14:37 598

原创 Compose中导航跳转的实现NavHost

/ 定义路由常量(推荐使用密封类)创建一个生成实际路由的方法,替换占位符// 创建一个实际路由的方法,替换占位符id// 创建一个实际路由的方法,替换占位符 fun createRoute(id : String) = "detail/ $ id " } }在 NavHost 中定义可组合的屏幕,包括带参数的屏幕// 详情屏幕(带参数)// 可选:设置参数是否可为空,默认值等// 从参数中获取id: "" // 提供默认值防止空。

2025-05-30 17:39:05 656

原创 Compose仿微信底部导航栏NavigationBar :底部导航控制滑动并移动

本文介绍了使用Jetpack Compose实现底部导航栏与页面滑动切换功能的方法。采用Material 3的NavigationBar替代BottomNavigation,配合HorizontalPager实现页面切换效果。主要步骤包括:添加依赖、创建数据类定义导航项、建立共享Pager状态同步页面索引与标题、使用协程处理平滑滚动,并通过Scaffold布局将NavigationBar与HorizontalPager结合。最终效果支持点击导航项或左右滑动切换页面,并可通过颜色变化直观显示当前选中状态。

2025-05-30 16:40:49 926

原创 jetpackCompose的简单记录

在做项目的过程中,将一些初次使用控件和实现方法进行记录,方便后期复习并总结。

2025-05-20 10:16:54 895

原创 JetpackCompose基础学习2.2

/ 1. 添加依赖:implementation(“io.coil-kt:coil-compose:2.4.0”)value 中的类型可以是Int,String,Boolean等基础数据类型。// 加载 res/drawable 或 res/mipmap 中的图片。// 文件需放在 src/main/res/raw/ 目录下。// 文件需放在 src/main/assets/ 目录下。在Compose中记录状态,对于列表的实现;而其他基础类型记录状态可以简单实现,如下所示。// 2. 代码实现。

2025-05-19 14:16:22 419

原创 Jetpack Compose 基础组件学习2.1:Surface

使用icon的时候需要注意是,Icon中的tint属性是默认的,Compose 的 Icon 组件默认会应用 LocalContentColor,如果未明确指定 tint 参数,可能会覆盖原有颜色。Surface是平面的意思,一般是作为底层页面背景或者自定义背景实现时候进行使用,将很多的组件摆放在这个平面中,可以通过Surface自定义平面的边框,圆角,阴影和颜色等。ImageBitmap:位图对象,可以显示 JPG,PNG 等格式的图标。Icon的使用,可以加载位图和矢量图,分别有三种方式进行加载。

2025-04-25 16:55:02 444

原创 unity基础自学2.3:移动和抓握物品

根据pico官方文档进行配置交互,其中有一些基础的问题点不是很理解,在这边进行简要的记录。

2025-04-21 17:16:00 1523

原创 recyclerview嵌套,实现水平方向联合滑动

在Android中没有控件可以直接展示表格,但是有的时候又需要构建类似于表格的布局,通过RecyclerView直接嵌套实现表格,但是需要实现嵌套RecyclerView的子项实现水平方向联动滑动的效果比较麻烦,接下来看一下如何实现。在SyncHorizontalScrollRecyclerView中添加滑动监听,在OnScrollListener中进行同步滑动// 同步滚动组(所有需要联动的RecyclerView)init {

2025-04-10 17:06:03 856

原创 Android免费实现excel文件(简单)转为PDF文件

前言:在Android中,对于excel文件无法进行直接展示,只能通过其他方式进行间接展示,免费的相对来说比较复杂,如果只是个人使用的话或者可支持付费商用使用的话,推荐使用进行实现,如果是简单的表格可以使用的形式进行实现。

2025-04-09 08:56:08 762

原创 Jetpack Compose 基础组件学习2.0

之前学习了Compose的布局,对XML布局中常见的布局有了一定的了解,接下来了解具体的控件,学习Text组件的使用。同样的是,学习compose博物馆中总结,在既有的基础上进行学习,将不懂的知识点进行梳理,或者版本升级后的修改进行记录。

2025-04-07 16:03:59 823

原创 Compose组件转换XML布局1.0

在JetPack Compose博物馆中,对于compose的讲解较为详细,我这篇笔记主要是记录自己不懂和不理解的知识点,可能会重复,也可能有其他的,学习Compose布局一般都是从传统XML布局中进行转换的,接下来开始学习不同布局的Compose组件。直接调用组件LazyVerticalGrid既可以完成实现columns = GridCells.Fixed(2), // 2列) {Card() {Text(// 在父布局中调用Column {// 其他内容...传统布局。

2025-04-03 15:00:14 1294

原创 12.1 Android中协程的基本使用

sealed 关键字sealed 关键字用于定义一个密封类(sealed class),用于控制子类的个数,只接受子类在密封类的同一个文件中声明,或者作为密封类的嵌套类。有助于改进when表达式,当使用密封类的时候,编译器会确保when表达式覆盖所有可能得子类,如果没有覆盖的话,则会出现报错的提醒,这有助于提高代码的健壮性和可维护性。

2025-02-19 11:28:46 1002

原创 unity 0基础自学2.2:射线与button UI的使用

设置脚本,对于多个按钮来说,将脚本附加到Canvas,并在选中button的情况下,查看Inspector中的OnClick,将点击按钮执行的事件添加其中。使用手柄时,对于右手按钮按键可以直接实现按钮的点击动作,下面脚本是为了测试手柄射线与UI的交互,同时测试按键中的其他按钮,下列以X按键为例。选中后,如下图所示,right-x,forward-z,up-y这三个UI控件为button,在button的上一级为Canvas。2、创建button UI效果。

2025-02-12 10:07:37 493

原创 unity 0基础自学2.1:unity 中button的各类状态

在Inspector中可见,对于button来说,不同的按钮状态呈现不同的颜色,如下图所示,共5种颜色。①NormalUI控件正常情况的状态高亮模式:当射线与UI交互时,呈现为高亮模式,射线变成白色。鼠标置于UI上方时所处的状态③Pressed鼠标左键长按状态④Selected选中状态,比如鼠标点击离开后,⑤Disabledbutton设置为不可点击,不可选择的状态。

2025-02-12 09:34:01 1707

原创 鸿蒙1.3:资源文件的使用

应用开发中使用的各类自定义资源文件统一存放于应用的resources目录下。

2024-12-30 16:23:30 654

原创 鸿蒙1.2:第一个应用

project name 为项目名称,建议使用驼峰型命名Bundle name 为项目包名Save location 为保存位置Module name 为模块名称,即运行时需要选择的模块名称,见下图查看模块名称,并选择。

2024-12-30 16:05:50 521

原创 鸿蒙1.1-环境搭建(按照官网文件走,最新版简单搭建)

选择系统类型①按下Win + R组合键,打开运行对话框。②输入msinfo32,然后按Enter键。③在打开的“”窗口中,查找“处理器”项或“系统类型”行。这里会显示CPU的详细信息,包括架构类型。如果显示的是“基于x64的PC”,则表明是x64架构;如果显示的是“基于ARM的PC”,则表明是ARM架构。(1)双击下载的文件(2)接受,点击Next(3)路径自定义,也可以按照默认路径安装,点击Next(4)选择默认的安装方式即可,点击Next。

2024-12-27 14:56:49 634

原创 Android:bug记录(简单)

2、在使用Toolbar的theme中需要使用android:Theme.Material.Light.NoActionBar的子项,需要实现的item为windowActionBar,将其设置为false,因为windowActionBar与Toolbar两个控件实现的同一个功能效果。1、activity继承AppCompatActivity,使用theme需要为Theme.AppCompat的子项。重新定义theme并修改activity中的theme。3、两者之间存在冲突,需要重新定义。

2024-12-27 13:50:34 401

原创 build构建:Unsupported class file major version 61

下载合适的JDK版本。

2024-12-25 13:29:51 558

原创 1.1 android:监听并处理返回事件

在Android开发过程中,默认执行返回事件是结束当前界面,返回上一个界面,没有任何提示,但用户可能会误操作,这时出现一个提示界面对用户较为友好,接下来,让我们探究返回事件的处理。

2024-12-12 10:04:40 1404

原创 Flutter 1.1:下载Flutter环境

在setting的Plugins中下载Flutter,如图所示,可以直接进行搜索查找。

2024-11-29 13:49:42 717

原创 Flutter 1.2:flutter配置gradle环境

可以通过复制链接方式让AS下载,也可以自行下载,加载本地文件。

2024-11-29 11:28:10 3009

原创 1.2 android中树结构列表(使用recyclerView实现)自定义+文件路径

【代码】20241121 android中树结构列表(使用recyclerView实现)

2024-11-21 16:21:18 620

原创 使用NotificationChannel实现后台视频上传eventbus

其中newinfo为需要通知的数据。

2024-09-19 15:49:32 359

原创 PictureSelector自定义路径首页不显示数据的问题

(https://github.com/LuckSiege/PictureSelector/wiki/PictureSelector-3.0-%E5%A6%82%E4%BD%95%E5%8A%A0%E8%BD%BD%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90%EF%BC%9F)解析。但是使用自定义路径的实现,数据加载的首页没有数据查看,切换之后就可以查看数据。selector的模块中,1、依赖导入和源码查看。见[read.md]

2024-08-19 17:33:43 340

原创 git push上不去的问题Iremote reiectedl——文件过大的问题

在新建分支的时候,发现push怎么也上传不上去,一开始觉得是权限的问题,但是尝试了各种方案都没有用,后面再仔细看了一下是文件太大了,远程拒绝推送接下来,和大家讲讲我的解决方案。

2024-08-09 14:43:40 2232

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除