自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

邵旺运的博客

分享他人,快乐自己

  • 博客(49)
  • 收藏
  • 关注

原创 Android 11在app中修改屏幕亮度

1.测试发现,当亮度值为0.0f的时候,屏幕并不会黑屏。这可能是系统对屏幕亮度最小值有限制,以避免用户无法操作或查看屏幕内容,所以,我这里进行了一些处理// 避免除以0。

2024-04-28 16:08:02 532 2

原创 Android 记录一个SeekBar的滑块显示问题

(默认值在某些版本的Android中可能是true)时,SeekBar在滑动过程中,进度条会在thumb的左右两侧显示出不同的颜色或样式,以便更好地突出显示当前选中的范围。在某些情况下,特别是在自定义了thumb图标后,这种分离的效果可能与自定义thumb的样式不协调,导致看起来像 thumb 图标的周围有额外的白色阴影或边框。,SeekBar在滑动时就不会再将进度条分割开来,而是保持连续的整体,因此也就消除了可能与thumb图标结合时产生的误解性边缘效果。应该看的很清楚吧,那个滑块周围多了一些“阴影”

2024-04-26 09:26:32 422 1

原创 Android Jetpack学习系列——WorkManager

为了确保Worker的正确性和稳定性,可以为其编写单元测试。2. 创建Worker类。4. 配置任务参数与约束。5. 监听任务状态与结果。

2024-04-22 15:21:57 340

原创 Android MVVM架构 + Retrofit完成网络请求

*** Constant 类用于存储应用程序中使用的常量。* 该类不包含任何方法,仅包含静态常量字段。*/// 城市名称,示例为"长垣"public static final String CITY_NAME = "长垣";// 天气API的URL基础路径// 天气API的密钥,用于身份验证public static final String WEATHER_API_KEY = "你的APIKey";

2024-04-19 09:05:54 699

原创 Android 网络请求异常UnknownServiceException: CLEARTEXT communication to xxx not permitte

当出现类似“java.net.UnknownServiceException: CLEARTEXT communication to XXX not permitted by network security policy”的异常时,这表明您的 Android 应用尝试使用明文(非加密)协议(通常是 HTTP)访问这个域名,但被系统的网络安全策略所阻止。自 Android P 版本开始,出于安全考虑,Android 系统默认禁止了对明文 HTTP 站点的访问。将您的 API 请求升级为 HTTPS 协议。

2024-04-18 09:15:20 334

原创 Android Jetpack学习系列——Room

*** 用户类,用于表示用户信息*/// 主键,自动生成// 用户名// 年龄// 性别/*** 构造函数,用于创建一个新的用户实例* @param name 用户名* @param age 年龄* @param sex 性别*//*** 获取用户ID* @return 用户ID*/return id;/*** 设置用户ID* @param id 用户ID*//*** 获取用户名* @return 用户名*//*** 设置用户名。

2024-04-16 17:27:48 1107 1

原创 Android Room 记录一个Update语句不生效的问题解决记录

上面说了,user表以id为主键,所以从insert语句的执行来看,没有问题,就是完完全全的两条数据,这也是比较符合现实的,因为中国这么大,人这么多,肯定有很频繁的重名现象,所以一般我们来区分人并不是以姓名来区分,而是采用身份证号(ID),而后再因为身份证号码只有一个且比较重要不能随便示人,同时又要保证关联到人,我们现在一般用手机号来区分人,当然,手机号都有实名认证,即关联了身份证,且一个身份证可以办理多个手机号。所以,问题就出现在了我们调用updateUser方法时,传入的user对象本身,即。

2024-04-16 16:14:55 1361

原创 Android MVVM架构学习——ViewModel DataBinding

比较好的编程规范是,每创建一个Activity/Fragment,都创建与其对应的ViewModel/*** 登录视图模型类,用于管理登录相关的数据和逻辑。*/// 账户名和密码的LiveData对象,用于在UI变化时通知订阅者/*** 获取账户名的LiveData对象。* @return 账户名的LiveData对象。*//*** 获取密码的LiveData对象。* @return 密码的LiveData对象。*//*** 设置账户名。

2024-04-11 17:24:06 762

原创 【Bug】Android BottomNavigationView 图标黑色色块问题

最近在研究Android Jetpack组件,在使用Navigation配合底部导航栏时,发现一个奇怪的问题,如下:我的第三个图标变成了一个黑色色块,这个问题前两天我遇见过,当时是三个图标全部变成黑色块,另一个demo中的三个图标就没事,综合今天这个部分黑色色块的情况,我觉得这是一个值得记录的问题

2024-01-04 10:35:16 967 1

原创 Android Jetpack学习系列——Navigation

Google在2018年就推出了Jetpack组件库,但是直到今天我才给重视起来,这真的不得不说是一件让人遗憾的事。过去几年的空闲时间里,我一直在尝试做一套自己的组件库,帮助自己快速开发,虽然也听说过Jetpack,但是压根儿也没去了解,但是其实自己已经无形之中用到过很多Jetpack中的库了,只是自己不知道,比如说databinding、viewmodel、camerax等等所以我打算推出一个Jetpack的学习记录,今天是第一个组件:Navigation老规矩,文末有demo的源码(永久0积分)

2023-12-28 17:15:52 1274

原创 学习记录:使用Bootchart分析安卓系统开机启动时长

因为这个bootchart折磨了我好几天了,我基本上把网上能够找到的方法都试了一遍,然后把GPT告诉我的方法也都试了一遍,不知道它有没有糊弄我,反正是我都试了,可能是有的有用,有的没用,如果大家在按照这篇博客的指导,没有完成效果,在评论区留言,我基本上每天都会看csdn,看到了,我会尽力用自己的经验帮助大家解决问题。

2023-11-03 15:04:43 868 1

原创 Android 画板小工具

这个demo的功能还是相对比较简单的,然后没有什么好讲的,只不过这个demo中有涉及到Android 的运行时权限申请,兼容Android13的,可以重点关注一下,其他的都是UI层的东西,基本上把代码复制过去,就可以用了,真的有什么问题了,评论区留言。先看一下效果,吐槽一下csdn的视频上传,质量压缩的比较厉害,然后比例也发生变化了,反正是大家凑合看吧,文末会放源码(我的所有demo的源码都是不需要积分的)1.自定义画板SignatureView。Android画板小工具测试视频。我主要放一下关键代码吧。

2023-10-18 09:49:46 411

原创 Android Socket通信

跟上一篇讲MQTT通信一样,我整理这部分内容的时候,如何找一个稳定好用的socket测试软件是一个最大的痛点,在网上找了一圈,发现别人评价的Sokit是一个不错的工具,然后我会把这个工具以及demo的源代码放在文末链接,大家可以根据需要获取。上面呢,就是把socket的连接、通信、断开连接,再次连接等功能都测试了一遍,原谅我的英文,也基本上就是能够把会的单词组一遍,别挑我的语法错误就好。说明,本文中同样使用了viewBinding。build.gradle文件。接下来,正式开始本文的讲解。

2023-10-10 10:02:54 183

原创 Android MQTT通信

我相信对于大部分Android开发人员来说,MQTT服务是最大的坎奋斗鱼 MQTT:windows最简单搭建mqtt服务端及本地客户端测试按照博客里面的讲解逐条操作,最终我们可以在自己电脑上创建一个MQTT的服务,并且可以通过浏览器访问,如下图那么服务端就算是有了,接下来就开始着手做Android客户端1.引入依赖//MQTT2.申请权限3.注册服务......说明:为了避免出现:可以在gradle.properties文件中增加4.布局文件

2023-10-09 09:20:08 465

原创 初识鸿蒙:从一个简单的页面跳转开始

前段时间,华为突然重磅发布了mate60 pro,这标志着国产芯片的又一重大突破,同时,也给我们国人带来了一次精神上的鼓舞。另外一个关于鸿蒙的消息,据说是从鸿蒙4.0开始,鸿蒙就不再兼容安卓app了,移除了AOSP源码。从某种程度上说,这也算是回应了别人所说的套壳安卓的流言。这几年安卓的市场行情越发的不友好了,在前几年就流行的小程序、快应用以及跨平台开发等等浪潮之后,原生安卓,说句可能会比较严重的话,也就是日薄西山了。

2023-09-06 19:22:38 2325

原创 Android AIDL进程间通信

AIDL通过定义接口和方法,使得不同进程中的组件可以调用彼此的方法,实现数据和操作的交换。在客户端应用中,你可以通过服务的实例来调用在AIDL接口中定义的远程方法,这些方法的调用将触发实际的进程间通信。首先,在提供服务的应用中,你需要使用AIDL语言来定义一个接口,该接口中包含要提供给其他进程调用的方法。接着,你需要在服务的代码中实现刚刚定义的AIDL接口,提供具体的方法实现。在客户端应用中,你需要绑定到提供服务的应用,这样你可以获取到服务的实例。

2023-08-23 14:52:29 311

原创 Android系统的启动学习记录

init.rc 文件中的最重要部分是服务(Service)的定义。服务代表着系统中的一个组件,可以是一个后台进程、守护进程或者其他系统级别的任务。每个服务由一个名字和一组属性定义,属性包括启动命令、启动级别、依赖关系等。

2023-08-23 14:40:26 110

原创 Android 使用ndk-build和cmake构建JNI程序

前天,我在网上到处找相关的资料、博客、书籍,想着能够找一个简单点的,让我了解流程的就行,很遗憾,网上的资源新的新,旧的旧,质量也是参差不齐,跟着别人的弄了一天,到最后啥都没弄成,要么是环境不对了,要么是编译不出来so文件,反正就是各种出问题,但是网上去找问题的解决方案吧,还找不到,要不然就是引入一个新坑,一天折腾下来,差点日志都没法写。我想说一下整理这篇博客的原因。之前其实也做过支持JNI的项目,但是那都是接手别人的,对于JNI模块一般创建好了,轻易不会需要改动的,所以一直对于这块也没怎么细究。

2023-06-14 17:32:25 1369

原创 Android 预览基于UVC协议的摄像头并截图或录屏

Android 预览基于UVC协议的摄像头并截图或录屏

2023-05-29 19:06:35 1704

原创 Android 获取相册媒体文件并轮播(图片展示、视频播放)

上面两步,基本上就实现了获取所有的数据,并且也把具体的UI框架搭起来了,那么接下来就是要分别判断媒体类型,来做不同的展示了,图片,就是普通的展示,视频,就是播放。其实,至此,走完(1)(2)(3)这三部分,基本上就完成了本文中完成的效果了,笔者在写demo的时候也基本上是遵循此顺序完成的。(2)利用Viewpagger2+fragment实现分页滑动效果,这部分可以参考这一篇。(1)Android 获取系统相册所有的图片以及视频资源。引用aar,如图(文件可从demo中获取)实现视频播放相关接口。

2023-05-29 13:54:09 996 3

原创 Android SeekBar.setOnSeekBarChangeListener方法讲解

当SeekBar的进度发生变化时,onProgressChanged方法就会被回调,我们可以在这个方法中获取SeekBar的当前进度值,并进行一些相应的操作。setOnSeekBarChangeListener是SeekBar中的一个回调方法,用于监听SeekBar的变化,当SeekBar的值发生变化时,会回调SeekBar.OnSeekBarChangeListener中的相应方法。在这个方法中,我们可以保存SeekBar的当前进度值,比如将当前进度值保存到SharedPreferences中。

2023-05-26 13:59:39 1368

原创 Android SurfaceView.setZOrderOnTop方法

当setZOrderOnTop设置为true时,SurfaceView会被放置在窗口的顶部层,即在视图层次结构的最上面。这意味着SurfaceView可以覆盖其他视图,包括应用程序的标题栏和状态栏。而当setZOrderOnTop设置为false时,SurfaceView会被放置在视图层次结构的底部,即在其他视图的下面。需要注意的是,将setZOrderOnTop设置为true时,可能会影响SurfaceView的性能和稳定性,因为它可能需要更多的系统资源来绘制和更新SurfaceView。

2023-05-26 13:59:34 1496

原创 Android Viewpagger2+Fragment实现UI切换效果

简单分析一下,顶部是一个RadioGroup,主要是用来切换当前显示的数据类型,可以点击“列表”、“表格”两个RadioButton实现切换类型,也可以通过左右滑动页面,再加上本来两个Fragment中展示的RecyclerView,构成了本文中将要讲解的UI效果,文末附带demo源码。4)布局文件顾名思义,item_list与item_grid分别为列表和网格列表的子项布局;2.fragment_list、fragment_grid页面的布局是类似的,只展示一个。2.代码结构,如下图。

2023-05-25 15:16:05 386

原创 Android 外接基于UVC协议的摄像头并实现预览

本文主要展示具体的实现,并不研究UVC协议以及底层实现,只展示Android外界usb摄像头的预览功能的流程。Android 平台支持使用即插即用的 USB 摄像头(即网络摄像头),但前提是这些摄像头采用标准的。UVC协议:USB Video Class,USB视频类,是一种为USB视频捕获设备定义的协议标准。1.项目中集成libuvccamera模块(代码可从github下载,或者是文末demo中附带)

2023-05-23 11:32:19 4543

原创 Android 实现水平、垂直方向文字跑马灯效果

展示类项目经常会用到文字跑马灯,包含水平方向和垂直方向,常见的需求还有控制播放速度等,网上找了很多相关的效果,但是不尽如人意,昨天找到了个MarqueeView,功能相对符合场景,便于配置,下面将把使用方法和问题点列出来,结尾附demo

2023-04-28 15:32:02 1592

原创 Android 海康视频监控预览实现

信息发布系统的业务场景里,因为要单独定义一个组件PreviewWidget,然后父布局动态的addView加载该组件,因为MainActivity中需要执行业务,然后组件中只给外部返回一个hatomPlayer对象,但是把后续代码拿出来之后,就发现总是白屏,显示不出来,打断点发现,texture.getSurfaceTexture总是拿到空,想了很多办法都无法解决。1.manifest文件,申请权限,开启硬件加速(SurfaceView需要)准备工作(省略步骤,module文件和so文件见demo)

2023-04-26 10:40:16 1292

原创 Android 使用AlarmManager实现定时任务

Android 使用AlarmManager实现定时任务

2023-04-05 10:09:02 939

原创 Android 使用 Datepicker获取日期

Android 使用 Datepicker获取日期

2023-04-05 10:05:16 781

原创 Android 按钮防连点功能

Android 按钮防连点功能

2023-04-05 10:02:53 247

原创 Android 副屏调用

Android原生副屏功能API,不需要集成SDK。具体调用流程如下

2023-04-05 10:02:13 1082 2

原创 Android Studio 拆分包名

Android Studio 拆分包名

2023-04-05 10:01:58 552

原创 Android 根据不同网络类型读取IP地址

Android 根据不同网络类型读取IP地址

2023-04-05 09:56:44 837

原创 Android 保存/读取本地SD卡文件(兼容Android 13)

Android 保存/读取本地SD卡文件(兼容Android 13)

2023-04-05 09:51:35 20341 7

原创 Android WebView与JS交互

Android项目中嵌入网页是一种很常见的做法,所以就带来了交互上的需求。

2023-04-05 09:48:04 444

原创 Android HBanner 图片视频混合轮播

很多展示类的app,会使用到banner图,其中也不乏想要图片+视频混合轮播的需求,例如客显屏系统,就使用到了该种功能,下面会简单列举实现流程,结尾附带demo源码

2023-04-05 09:47:42 1029 3

原创 Android 保存并导出本地日志

背景:闸机检票项目经常会受到项目上反馈功能异常,排查问题需要提取设备中保存的日志,但是获取闸机设备中保存的日志基本上都是需要人工获取,需要集成部同事或者景区工作人员,非常的不方便,因此在前段时间,研发部内部开始了日志上传功能的开发。

2023-04-05 09:39:11 2282

原创 Android 网络请求-文件上传

Android 网络请求-文件上传

2023-04-05 09:36:49 127

原创 Android 实现快速对CPU的压榨demo

前段时间,接到一个任务,需要对闸机新设备进行性能测试,需要让设备的CPU使用率保持在95以上,本来想要网上找相关的测试工具,或者是找一些测试代码,但是基本上找的都是性能优化相关的,这与我想要实现的目的是刚好相反的,所以,我就自己尝试实现一个demo。注:测试设备为(2G运存+8G存储),配置较高的设备或者是想要调整使用率的可以通过修改图片源文件大小、调用线程数量、以及修改耗时操作流程来实现。最终实现的原理也很简单,很暴力,开数个线程去处理耗时操作(IO读写)因此,代码中直接将该方法调用四次。

2023-04-05 09:33:38 359

原创 Android 文件处理工具类

Android 文件处理工具类

2023-04-05 09:33:08 233

原创 Android RSA加密

Android RSA加密

2023-04-05 09:32:09 307

Android JetPack学习系列-Navigation demo

Android JetPack学习系列——Navigation demo

2024-01-02

Android 画板小工具demo

Android 画板小工具demo

2023-10-18

Android Socket通信 demo

Android 使用netty实现Socket通信demo+Sokit工具

2023-10-10

Android MQTT通信 Demo

Android MQTT通信 Demo

2023-10-09

Android 使用ndk-build和cmake构建JNI程序 demo

Android 使用ndk-build和cmake构建JNI程序 demo

2023-06-14

Android 预览基于UVC协议的摄像头并截图或录屏 demo

Android 预览基于UVC协议的摄像头并截图或录屏 demo

2023-05-29

Android 获取相册媒体文件并轮播(图片展示、视频播放)demo

Android 获取相册媒体文件并轮播(图片展示、视频播放)demo

2023-05-29

Android Viewpagger2+Fragment实现UI切换效果 demo

Android Viewpagger2+Fragment实现UI切换效果 demo

2023-05-25

Android 外接基于UVC协议的摄像头并实现预览 demo

Android 外接基于UVC协议的摄像头并实现预览 demo

2023-05-23

Android 实现水平、垂直方向文字跑马灯效果demo

Android 实现水平、垂直方向文字跑马灯效果demo

2023-04-28

Android 海康视频监控预览实现demo

Android 海康视频监控预览实现demo

2023-04-26

Android 副屏调用demo

Android 副屏调用

2023-04-05

Android HBanner 图片视频混合轮播demo

Android HBanner 图片视频混合轮播

2023-04-05

Android 保存并导出本地日志demo

Android 保存并导出本地日志

2023-04-05

Android 实现快速对CPU的压榨demo源码

Android 实现快速对CPU的压榨demo源码

2023-04-05

空空如也

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

TA关注的人

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