自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(172)
  • 资源 (35)
  • 问答 (7)
  • 收藏
  • 关注

原创 Android与单片机 | 开发板 | 智能硬件 | 智能设备 | 数据协议 |开发总结

一、缘起工作中经常遇到需要Android程序与各式各样的板子、智能设备进行交互,通信的方式也基本上都是Ble或者Socket tcp/udp等等…其中最重要的一点就是通信的协议、协议、协议重要的是说三遍;通信协议就是用来定义与设备交互的方式和交互过程中数据包的格式 如:(包头—数据包长度—数据—校验位—包尾)二、这里先来理理各种数据类型、所占的字节数等1、我们写的代码最终都是转化成各种机器所...

2019-06-15 00:55:31 5335 11

原创 使用AndroidX + ViewModel + LiveData + DataBinding组件,同时使用RxJava2 + Retrofit2 + Glide等主流框架搭建的MVVM

TODO-MVVM:使用JetPack中的AndroidX + ViewModel + LiveData + DataBinding组件,同时使用RxJava2 + Retrofit2 + Glide等主流框架进行搭建GitHub项目地址项目中basicLibModule为搭建的基础框架可以拿来就用,sampleModule为项目的使用案例效果图2018年谷歌I/O大会发...

2019-04-02 22:02:31 9025 1

原创 一个简单、轻量的Android版本更新库、内置了一个漂亮的更新对话框

请前往Github查看最新介绍AppUpdateGitHub地址 AppUpdate正在征集框架使用者信息,希望得到大家的支持由于Android Q版本限制后台应用启动Activity,所以下载完成会发送一个通知至通知栏(忽略showNotification的值,需要允许发送通知)由于Android Q版本限制应用访问外部存储目录(访问需要同时满足两个条件详情见...

2018-01-31 11:52:41 7494 10

原创 欢迎进入阿钟的博客导航——快速查找所有博客

世上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离;世界上最痴心的等待,是我当case你是switch,或许永远都选不上自己;世界上最真情的相依,是你在try我在catch。无论你发神马脾气,我都默默接受,静静处理。到那时,再来期待我们的finally。Java浅谈Java设计模式—-建造者模式浅谈Java设计模式—-单例模式浅谈Java设计模式—-装饰...

2016-08-25 17:25:26 5319

原创 Flutter 拦截系统键盘,显示自定义键盘

参考链接: https://juejin.cn/post/7166046328609308685。

2024-03-29 11:22:08 450

原创 Flutter Plugin中依赖aar本地包

二、然后到Plugin的目录中 ,在目录的同级创建目录将需要依赖的aar放至此目录三、最后在Plugin中的中依赖aar即可Good Luck!

2024-03-19 11:06:04 295

原创 Flutter自定义TextInputFormatter实现金额输入框,同时解决iOS数字键盘不能输入小数点的问题

所以这个时候最好的解决办法是允许输入。

2023-12-13 15:20:20 902

原创 Flutter自定义TextInputFormatter实现金额输入框

【代码】Flutter自定义TextInputFormatter实现金额输入框。

2023-11-30 14:44:14 683

原创 Flutter 开发、测试,网络调试工具

【代码】Flutter 开发、测试,网络调试工具。

2023-10-31 15:11:24 231

原创 Flutter 通过BottomSheetDialog实现抖音打开评论区,内容自动上推、缩放效果

这里本来是想通过改变transitionAnimationController.value的值来改变弹窗的高度,但是实际中发现或的效果不理想,不知道为什么。参数,这个就是对话框显示的动画控制器了值为[0,1],当全部显示是为1。那么当将弹窗设为固定高度时,就可以通过这个值进行计算了。通过上面这样处理,内容区的上移和缩小就已经实现了。

2023-09-08 16:38:11 1341

原创 使用Flutter开发俄罗斯方块小游戏

呢,原因就是每个方块的颜色会随机生成,同时当方块消失的时候上面的方块要进行下移,所以就需要知道每个格子需要绘制什么颜色的方块。计算出每个方块的大小,也就可以计算出格子所占的高度了,接下来通过。可以讲如上七种方块大致形象称为"O,Z,S,T,J,L,I"类型。函数进行实现,也就是将旋转后将新block数据进行更新即可。因为每一个方块可以进行无限制旋转,所以T型方块重写。还有一点:这里为什么二维数组里面装的是。3、现在就可以抽象出一个方块的模板来了。进行绘制游戏背景即可,如下。15*10的二维数组。

2023-07-03 16:27:21 1426 1

原创 Gitlab CI/CD 监听当前stage执行状态,成功或失败

【代码】Gitlab CI/CD 监听当前stage执行状态,成功或失败。

2023-04-23 14:12:45 738 1

原创 创建Google play开发者账号,并验证身份通过

付款资料付款银行卡持有人。

2023-04-17 12:36:01 4486 12

原创 Flutter自定义MultiChildRenderObjectWidget实现圆环布局效果

本篇文章主要参考了恋猫de小郭Flutter 完整开发实战详解(十六、详解自定义布局实战)文章,大家可以先看完这篇文章再来阅读本篇这样能更好的理解文中代码。创建类继承创建类继承创建类继承RenderBox,同时混入、关于上面两个混入,在开头引入的文章链接中已经详细说明了RenderBox。

2022-12-13 17:51:02 1068

原创 Flutter App开发黑白化UI实现方案ColorFiltered

这种效果在原生开发上大家肯定或多或少都了解过,原理都是在根布局绘制的时候将画笔饱和度设置成0;具体实现大家可以搜一搜这里就不贴了。

2022-12-01 11:44:07 882

原创 IDEA 开发插件,插件依赖|文件路径转VirtualFile 遇坑随笔

FlutterModuleBridge插件Flutte、Dart模块化开发,事件通信插件。FlutterPlugin插件Flutter路由、Assets资源、Iconfont资源生成插件。

2022-11-24 10:58:34 1064

原创 Flutter 实现九宫格抽奖动画效果

通过Flutter实现的九宫格抽奖效果

2022-10-20 15:25:39 1533

原创 解决Flutter输入框限制最大输入长度时,从中间输入会自动截取掉后面的内容

当限制输入框最大输入长度时,将`光标移动到中间`输入,当`输入的内容长度`加上`已经输入内容的长度`大于`限制的输入长度`时,Flutter会将光标后面的内容进行截取掉;而当我在原生Android上验证时却是自动截取输入的内容原有的内容不动。...

2022-08-16 14:19:39 1631

原创 Flutter输入框实现银行卡输入 每隔四位插入空格进行分割

先来看下效果图吧实现思路1、利用输入框的TextInputFormatter的withFunction方法来处理用户输入的内容2、同时需要监听文本改变将光标移动至末尾///输入框控制器TextEditingController _controller = TextEditingController();///输入框CupertinoTextField( controller: _controller, placeholder: '请输入银行卡号', ///省略部分代码 in

2022-04-28 20:57:33 2308

原创 将Flutter添加到现有应用——过程中遇到的问题

参照官方文档试着将Flutter集成到现有的Android应用,出现了错误特此来记录一下本文所展示项目的运行环境:Flutter SDK Version:2.81.AndroidStudio Version:Bumblebee | 2021.1.1 Patch 2Android SDK Version:31Gradle Version:7.21、 官方教程地址:这里我是按照手动集成 方案B-依赖模块的源码的方式将Flutter添加至项目2、在当前Android项目下创建一个flutter_

2022-03-24 17:38:55 3204

原创 Flutter悬浮窗组件之实现快捷换肤、切换语言等开发调试功能模块

一、最近开发一个App具有黑白两个主题和切换语言的功能,所以在开发的时候一个页面总是要不断的去切换主题和语言来查看功能是否正常。为了提高这个开发效率突然想到可以在应用上增加一个悬浮窗组件然后实现主题切换和语言切换的功能,这样在任意一个页面就可以快速的查看效果。不用来回切换到设置页面内去进行切换了。二、 实现的效果悬浮窗组件也可以随意进行拖动,打开一个新的页面悬浮窗也始终是在最顶部的这里稍微参考了一下滴滴的Dokit-Flutter悬浮窗实现三、功能实现创建一个DeveloperWid

2021-12-11 13:15:46 2015

原创 Flutter使用Draggable与自定义RenderObject实现图片添加标签,随意拖动位置效果

实现的效果图如下

2021-08-26 16:18:54 810

原创 Flutter视频编辑轨道 | 自定义View实现UI交互效果 | 触摸事件处理

首先先来看下需要实现的交互效果 涉及的功能点轨道最大展示的时长,这里是3分钟视频截取最短时长,这里是3秒钟当视频时长大于3分钟时,轨道底部可以滚动触摸事件处理

2021-08-11 09:57:15 2001 7

原创 解决Flutter键盘弹起导致与输入框有间距问题(Flutter键盘弹起Scaffold布局流程)解析

一、 在项目中遇到了个如下问题:当页面底部有个输入框,点击弹出键盘时;输入框与键盘之间有一段间距通过排除,最后找到了问题根源所在;原因是使用了这个屏幕适配框架导致的。此框架通过直接修改FlutterViewConfiguration()的size与devicePixelRatio达到适配的目的二、要解决这个问题,就需要了解键盘弹起整个页面做了哪些事情来入手了假设页面如下:void main() { runApp(MyApp());}class MyApp extends B

2021-07-31 15:23:33 2746

原创 Flutter自定义View之——价格选择器|双向滑动|手势处理

源码下载地址一、本篇文章通过自定义View实现的效果图二、现在对这个组件进行一一拆解,如下:顶部选中的结果我们可以单独拿出来,通过监听选择器的变化来显示值就可以底部固定的灰色进度,绘制圆角矩形刻度线,绘制直线;需要注意的是开头和结尾的刻度无需绘制刻度文字,绘制文字开始与结束的滑块,绘制图片红色选中的进度,绘制圆角矩形手势处理三、这里重点说一下绘制文字这块由于文字是与刻度居中对齐的,所以在计算坐标时 公式如下:每一个文字的起点X坐标 = 画布宽度 / 5 * 第几个刻度 - 文

2021-06-19 14:27:56 711

原创 Flutter 商品列表|商品名称 标签和文字混排效果实现

122

2021-03-11 16:41:46 1063 1

原创 Flutter 自定义TabBar指示器(indicator)实现秒杀UI样式

一、话不多说,先来看下实现的交互效果,源码在文末 二、首先分解一下需求自定义Tab指示器与Tab当秒杀节点小于5个的时候,每一个Tab的宽度为平分屏幕宽度当大于等于5个的时候,每一个Tab的宽度为固定宽度1、先来看下最简单的TabBar与TabBarView需要如何实现/// 省略若干代码...@overrideWidget build(BuildContext context) { return Scaffold( appBar: AppBar( title:

2021-03-02 21:57:38 6604 3

原创 Gradle执行Shell命令并获取执行结果|进行JSON数据解析

一、在gradle中新增自定的tasktask custom { def out = new ByteArrayOutputStream() def cmd = 'ls -l' exec { ExecSpec execSpec -> executable 'bash' args '-c', cmd standardOutput = out } println(out.toS

2021-01-27 19:27:39 5283

原创 Mac上终端使用zsh,设置不区分大小写进行Tab补全

Terminal切换至zsh后每次Tab补全时都要区分大小写搞的很难受,所以搞了大半天是终于把它搞定了…参考这位大佬的方法配置:在用户目录下的~/.zshrc文件中添加如下内容:autoload -Uz compinit && compinitzstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lo

2020-12-18 22:54:12 2832 4

原创 微信小程序蓝牙(BLE)开发与蓝牙设备数据交互开发总结

需要做一个类似于美团单车小程序扫码开锁的程序,需要使用到微信小程序的蓝牙模块功能与蓝牙锁进行交互一、这里我先把我遇到的两个天坑在这里先说明一下:1、根据锁的开发文档描述:读特征值是000036F6-0000-1000-8000-00805F9B34FB,可实际开发下来发现:在Android手机是使用这个,在iOS手机确是0000FEC8-0000-1000-8000-00805F9B34FB这个问题一直没有搞懂!(上面这两个特征值至是举例)2、开启读特征值通知成功后发送数据给锁,无法收到锁回复的数据

2020-08-27 22:51:50 5977 13

原创 Android通过反射EthernetManager Api设置以太网为静态IP地址或者动态获取IP

一、对于一些工控行业的Android主板一般都会扩展个以太网接口,也就是可以插网线进行上网;然后在系统设置页面有个以太网菜单可以进行IP、网关等设置,如下:二、那怎么通过代码去设置呢?1、Android系统在Framework层是有提供操作以太网Api的也就是android.net.EthernetManager,但是Google把Api给隐藏了;所以最终你是调用不了的2、那需要怎么操作才能调用到隐藏的Api呢?相信你肯定会立马想到使用反射去调用;对,没错!这里我就是使用的这个方式;当然如果你公

2020-08-21 16:16:31 8366 28

原创 Android串口开发,基于官方的android-serialport-api增加支持设置奇偶校验|数据位|停止位

SerialPortPlus项目地址Android串口开发,基于谷歌官方的android-serialport-api增加支持设置奇偶校验、数据位和停止位使用步骤第一步:app/build.gradle进行依赖implementation 'com.azhon:serialport:1.0.0'第二步:打开串口1.打开串口try { SerialPortPlus serialPortPlus = new SerialPortPlus("/dev/ttyMT2", 9600);

2020-08-02 12:52:35 1586 4

原创 记一次艰难的OutOfMemoryError:Could not allocate JNI Env问题排查

当我们看到这个错误的时候第一反应是不是内存泄露导致程序无法申请到内存而导致的,然而查下来的事实告诉我并不是的…

2020-05-27 17:32:05 3338 1

原创 解决Android SoundPool播放多个音效没有播放完成回调通知

一、在我们需要播放一些短促的音乐或者音效的时候(播放mp3文件),通常会使用SoundPoolApi来播放因为可以对音频文件进行预加载至内存中从而能够迅速播放出来二、SoundPool的简单使用SoundPool soundPool = new SoundPool.Builder().build();int soundId = soundPool.load(App.getApplication(), R.raw.mp3_0, 1);soundPool.play(soundId, 1, 1, 0, 0

2020-05-17 17:00:26 4211 4

原创 Netty在Android开发中的应用实战系列(六)——— 自定义协议进行拆包

之前的文章有写过Netty的拆包处理Netty在Android开发中的应用实战系列(四)——— 粘包 | 拆包 处理一、这篇文章重点讲一下Netty中自定义协议的拆包需要怎么处理,也就是Netty提供的LengthFieldBasedFrameDecoder拆包器二、一般情况下我们都会定一个数据包的格式,如下: 包头(共10个字节) 扩展数据 标识符...

2020-04-24 22:31:09 972 2

原创 Java实现部标JTT1078实时音视频传输指令——视频流负载包(RTP)传输

一、 说一说实现的思路1.接收平台方下发的0x9101命令(实时音视频传输请求)2.解析下发的0x9101命令,拿到音视频上传数据的服务器IP和端口号3.开始获取设备摄像头的每一帧视频数据,这里需要注意的是:视频数据支持的格式有:H.264,H.265,AVS,SVAC;详细的可以查看JTT1078协议的(表12)4.将每一帧的数据封装成(表19)音视频流及透传数据传输协议负载包格式...

2020-03-07 15:08:22 10433 7

原创 使用Netty封装的部标JTT808 | JTT1078 | 渝标协议 数据上传Android端

使用Netty封装的 部标JTT808,JTT1078,渝标协议 数据上传Android端示例项目地址:GitHub地址已实现的功能JTT808注册鉴权心跳位置信息汇报设置终端参数JTT1078历史音视频查询、回放与下载指令实时音视频传输实时音视频流及透传数据传输位置信息汇报渝标上传抽烟报警上传打电话报警上传未注视前方报警上传疲劳驾驶报警...

2020-03-01 22:42:08 2729

原创 Android使用AudioRecord录制PCM音频、PCM转AAC、使用MediaRecorder直接录制AAC编码音频

Android为我们提供了两个音频处理的API:AudioRecord和MediaRecorderAudioRecord:偏底层的apiMediaRecorder:对AudioRecord进行包装的api

2020-02-29 21:06:08 5449 6

原创 Android采集摄像头的视频流数据并使用MediaCodec编码为H264格式

前言:博主在写这篇文章之前可以说是在`音视频这方面`,知识积累与经验几乎为0;所以在实现这个功能上也是费了好一番功夫和精力把它给搞出来了,所以以此篇文章纪念一下。一、首先就是需要先打开摄像头,并拿到视频的每一帧数据1、相机权限是必须要的,API>=6.0还需要动态申请 (动态申请权限代码略过,详情见文末源码)<uses-permission android:name="a...

2020-02-26 23:59:18 10752 10

原创 Viewpager迁移至ViewPager2实现Tab标签页面

ViewPager2是什么呢?ViewPager2 是 ViewPager 的下一代版本,带来了更强的功能并修复了之前的 bug;也就是解决了ViewPager的bug和不支持RTL布局等等其他问题,Google同时也放弃对ViewPager的维护了。ViewPager2相比ViewPager带来的新功能支持竖直滑动支持RTL布局可以使用DiffUtil…相关文档链接ViewP...

2019-12-16 16:26:19 3973 7

EthernetUtil.java

Android通过反射EthernetManager Api设置以太网为静态IP地址或者动态获取IP https://azhon.blog.csdn.net/article/details/108148055

2020-08-21

Android使用AudioRecord、MediaRecorder录制音频

Android使用AudioRecord录制PCM音频、PCM转AAC、使用MediaRecorder直接录制AAC编码音频

2020-02-29

自定义ViewGroup仿ViewPager

scrollTo scrollBy Scroller的使用,自定义ViewGroup 使用scroll 仿ViewPager

2017-12-27

SSM web轻量极框架

使用 Spring SpringMvc MyBatis 搭建一个SSM web轻量极框架

2017-11-29

Spring MVC文件上传

使用Spring MVC进行文件上传。文章地址:http://blog.csdn.net/a_zhon/article/details/78566149

2017-11-17

Scheme-Module

使用系统提供的scheme协议进行页面跳转和网页打开app。不想设置积分,奈何不能选择0积分emmmm.....

2017-10-26

水波球效果

通过白塞尔曲线实现的一个水波球效果,类似剩余流量显示的效果。摘要为什么一定要大于100个字节,啊啊啊.......!

2017-09-04

仿QQ空间广告图

仿QQ空间广告图

2017-07-22

jxmpp-utils-cache

jxmpp-utils-cache

2017-03-10

Android文件断点下载案例

实现文件的断点下载,继续,暂停,重新下载

2017-02-19

几种常用的Dialog

一个常用的对话框大全

2017-01-18

联系人列表字母索引

仿手机联系人列表,可以根据字母索引快速点位联系人

2016-11-18

第一个JNI程序

一个基本的Android jni程序

2016-11-09

CheckBoxRecyclerView

RecyclerView列表上放置CheckBox实现全选功能

2016-10-26

zxing二维码扫描

一个精简的二维码扫描库,可以生成带Logo的二维码

2016-09-15

TabLayout测试

使用tablayout和ViewPager和Fragment实现导航栏页面切换

2016-09-13

git2.10.0版本

用于团队开发的一款神器

2016-09-12

使用TCP在局域网进行数据传输

基于SocketTcp编程使用数据传输

2016-08-31

QQ登录测试

实现了QQ登录和分享功能

2016-08-26

win git2.9.2

用于团队开发的一款神器

2016-07-21

Flutter自定义TextInputFormatter实现金额输入框

Flutter自定义TextInputFormatter实现金额输入框

2023-11-30

Flutter 通过BottomSheetDialog实现抖音打开评论区,内容自动上推、缩放效果

Flutter 通过BottomSheetDialog实现抖音打开评论区,内容自动上推、缩放效果

2023-09-08

使用Flutter开发俄罗斯方块小游戏

使用Flutter开发俄罗斯方块小游戏

2023-07-03

Futter自定义MultiChildRenderObjectWidget

本篇文章主要参考了恋猫de小郭Flutter 完整开发实战详解(十六、详解自定义布局实战)文章,大家可以先看完这篇文章再来阅读本篇这样能更好的理解文中代码。创建类继承创建类继承创建类继承RenderBox,同时混入、关于上面两个混入,在开头引入的文章链接中已经详细说明了RenderBox。

2022-12-13

Flutter悬浮窗组件之实现快捷换肤、切换语言

Flutter悬浮窗组件之实现快捷换肤、切换语言等开发调试功能模块

2021-12-11

CollapsingToolbarLayout.zip

https://azhon.blog.csdn.net/article/details/52611166 使用CollapsingToolbarLayout实现带图片折叠的ToolBar

2021-07-13

slider_selector_widget.dart

Flutter自定义View之——价格选择器|双向滑动|手势处理

2021-06-19

Flutter自定义TabBar的Indicator.zip

Flutter自定义TabBar的Indicator 实现秒杀Tab效果

2021-03-02

VideoH264.zip

Android采集摄像头的视频流数据并使用MediaCodec编码为H264格式 https://azhon.blog.csdn.net/article/details/104527016

2020-02-26

FindView.zip

使用APT(Annotation Processing Tool)自动生成Java,仿写ButterKnife自动找ID功能

2019-12-02

NettyAndroid,Netty在Android中的使用

Netty在Android开发中的应用实战系列(一)——— 搭建服务端与客户端:https://azhon.blog.csdn.net/article/details/100569489 Netty在Android开发中的应用实战系列(二)——— Encoder | Decoder | Handler 的使用:https://azhon.blog.csdn.net/article/details/100831777 Netty在Android开发中的应用实战系列(三)——— 心跳处理 | 断线重连:https://azhon.blog.csdn.net/article/details/100941312 Netty在Android开发中的应用实战系列(四)——— 粘包 | 拆包 处理:https://azhon.blog.csdn.net/article/details/101039462

2019-09-21

LicensePlateKeyboard.zip

自定义view实现输入车牌号码的键盘,介绍:https://azhon.blog.csdn.net/article/details/100173074

2019-08-31

AndroidBLE聊天案例BLE服务端

通过Android BLE 实现服务端、客户端通讯。一个简单的聊天案例

2019-07-28

Mvp+RxJava2+Retrofit2 搭建一个属于自己的开发框架

Mvp+RxJava2+Retrofit2 搭建一个属于自己的开发框架 https://blog.csdn.net/a_zhon/article/details/77914012

2019-03-27

JTT 808-2011道路运输车辆卫星定位系统数据协议

JTT 808-2011 道路运输车辆卫星定位系统终端通讯协议及数据格式

2018-12-19

android messenger进程通信

通过 Messenger(信使) 实现进程将的通信,服务端具有信息反馈。

2018-07-11

抽屉菜单滑动模糊效果

Log.e("TAG","滑动抽屉菜单,高斯模糊背景效果,毛玻璃效果。")

2018-06-13

Android不需要文件存储权限将文件保存至手机

Android不需要文件存储权限将文件保存至手机,Android不需要文件存储权限将文件保存至手机

2018-04-25

Handler Looper MessageQueue 源码解析

Looper MessageQueue 源码解析,通过源码 手写一套自己的Handler。

2018-01-13

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

TA关注的人

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