- 博客(177)
- 资源 (35)
- 问答 (7)
- 收藏
- 关注

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

原创 一个简单、轻量的Android版本更新库、内置了一个漂亮的更新对话框
请前往Github查看最新介绍AppUpdateGitHub地址 AppUpdate正在征集框架使用者信息,希望得到大家的支持由于Android Q版本限制后台应用启动Activity,所以下载完成会发送一个通知至通知栏(忽略showNotification的值,需要允许发送通知)由于Android Q版本限制应用访问外部存储目录(访问需要同时满足两个条件详情见...
2018-01-31 11:52:41
7961
7

原创 欢迎进入阿钟的博客导航——快速查找所有博客
世上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离;世界上最痴心的等待,是我当case你是switch,或许永远都选不上自己;世界上最真情的相依,是你在try我在catch。无论你发神马脾气,我都默默接受,静静处理。到那时,再来期待我们的finally。Java浅谈Java设计模式—-建造者模式浅谈Java设计模式—-单例模式浅谈Java设计模式—-装饰...
2016-08-25 17:25:26
5489
原创 Flutter 实现 A ~ Z字母索引列表,带自定义头部 |悬浮Header
一、实现的效果图 二、这里主要是用到了俩个第三方库scrollview_observerflutter_sticky_header三、这里作为一个记录以备后续使用,示例请查看源代码
2024-08-23 14:27:17
377
原创 Flutter 自定义日期范围选择组件,使用更加灵活,满足UI设计需要
这样基本的日历绘制就没什么问题了,剩下的就是选中的逻辑处理了,完整代码请查看源代码。,所以我们就可以根据1号是星期几来确定起始位置在哪里。
2024-08-23 10:54:35
772
原创 Flutter 玩转动画 + 自定义View 实现积分或金币领取流程动画
一、效果图二、主要涉及的知识点AnimationController、Animation、FractionalTranslation 动画Api的运用CustomPainter 自定义View以及每个时机的把握主要是写篇博客来记录一下这个功能的实现,具体代码就看源代码了,有疑问可以私信沟通源代码下载
2024-05-14 18:08:17
550
2
原创 Flutter 拦截系统键盘,显示自定义键盘
参考链接: https://juejin.cn/post/7166046328609308685。
2024-03-29 11:22:08
1311
原创 Flutter Plugin中依赖aar本地包
二、然后到Plugin的目录中 ,在目录的同级创建目录将需要依赖的aar放至此目录三、最后在Plugin中的中依赖aar即可Good Luck!
2024-03-19 11:06:04
698
原创 Flutter自定义TextInputFormatter实现金额输入框,同时解决iOS数字键盘不能输入小数点的问题
所以这个时候最好的解决办法是允许输入。
2023-12-13 15:20:20
1385
原创 Flutter自定义TextInputFormatter实现金额输入框
【代码】Flutter自定义TextInputFormatter实现金额输入框。
2023-11-30 14:44:14
1006
原创 Flutter 通过BottomSheetDialog实现抖音打开评论区,内容自动上推、缩放效果
这里本来是想通过改变transitionAnimationController.value的值来改变弹窗的高度,但是实际中发现或的效果不理想,不知道为什么。参数,这个就是对话框显示的动画控制器了值为[0,1],当全部显示是为1。那么当将弹窗设为固定高度时,就可以通过这个值进行计算了。通过上面这样处理,内容区的上移和缩小就已经实现了。
2023-09-08 16:38:11
2026
4
原创 使用Flutter开发俄罗斯方块小游戏
呢,原因就是每个方块的颜色会随机生成,同时当方块消失的时候上面的方块要进行下移,所以就需要知道每个格子需要绘制什么颜色的方块。计算出每个方块的大小,也就可以计算出格子所占的高度了,接下来通过。可以讲如上七种方块大致形象称为"O,Z,S,T,J,L,I"类型。函数进行实现,也就是将旋转后将新block数据进行更新即可。因为每一个方块可以进行无限制旋转,所以T型方块重写。还有一点:这里为什么二维数组里面装的是。3、现在就可以抽象出一个方块的模板来了。进行绘制游戏背景即可,如下。15*10的二维数组。
2023-07-03 16:27:21
1790
3
原创 Flutter自定义MultiChildRenderObjectWidget实现圆环布局效果
本篇文章主要参考了恋猫de小郭Flutter 完整开发实战详解(十六、详解自定义布局实战)文章,大家可以先看完这篇文章再来阅读本篇这样能更好的理解文中代码。创建类继承创建类继承创建类继承RenderBox,同时混入、关于上面两个混入,在开头引入的文章链接中已经详细说明了RenderBox。
2022-12-13 17:51:02
1361
原创 Flutter App开发黑白化UI实现方案ColorFiltered
这种效果在原生开发上大家肯定或多或少都了解过,原理都是在根布局绘制的时候将画笔饱和度设置成0;具体实现大家可以搜一搜这里就不贴了。
2022-12-01 11:44:07
1044
原创 IDEA 开发插件,插件依赖|文件路径转VirtualFile 遇坑随笔
FlutterModuleBridge插件Flutte、Dart模块化开发,事件通信插件。FlutterPlugin插件Flutter路由、Assets资源、Iconfont资源生成插件。
2022-11-24 10:58:34
1236
原创 解决Flutter输入框限制最大输入长度时,从中间输入会自动截取掉后面的内容
当限制输入框最大输入长度时,将`光标移动到中间`输入,当`输入的内容长度`加上`已经输入内容的长度`大于`限制的输入长度`时,Flutter会将光标后面的内容进行截取掉;而当我在原生Android上验证时却是自动截取输入的内容原有的内容不动。...
2022-08-16 14:19:39
1885
原创 Flutter输入框实现银行卡输入 每隔四位插入空格进行分割
先来看下效果图吧实现思路1、利用输入框的TextInputFormatter的withFunction方法来处理用户输入的内容2、同时需要监听文本改变将光标移动至末尾///输入框控制器TextEditingController _controller = TextEditingController();///输入框CupertinoTextField( controller: _controller, placeholder: '请输入银行卡号', ///省略部分代码 in
2022-04-28 20:57:33
2544
原创 将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
3325
1
原创 Flutter悬浮窗组件之实现快捷换肤、切换语言等开发调试功能模块
一、最近开发一个App具有黑白两个主题和切换语言的功能,所以在开发的时候一个页面总是要不断的去切换主题和语言来查看功能是否正常。为了提高这个开发效率突然想到可以在应用上增加一个悬浮窗组件然后实现主题切换和语言切换的功能,这样在任意一个页面就可以快速的查看效果。不用来回切换到设置页面内去进行切换了。二、 实现的效果悬浮窗组件也可以随意进行拖动,打开一个新的页面悬浮窗也始终是在最顶部的这里稍微参考了一下滴滴的Dokit-Flutter悬浮窗实现三、功能实现创建一个DeveloperWid
2021-12-11 13:15:46
2167
原创 Flutter视频编辑轨道 | 自定义View实现UI交互效果 | 触摸事件处理
首先先来看下需要实现的交互效果 涉及的功能点轨道最大展示的时长,这里是3分钟视频截取最短时长,这里是3秒钟当视频时长大于3分钟时,轨道底部可以滚动触摸事件处理
2021-08-11 09:57:15
2430
7
原创 解决Flutter键盘弹起导致与输入框有间距问题(Flutter键盘弹起Scaffold布局流程)解析
一、 在项目中遇到了个如下问题:当页面底部有个输入框,点击弹出键盘时;输入框与键盘之间有一段间距通过排除,最后找到了问题根源所在;原因是使用了这个屏幕适配框架导致的。此框架通过直接修改FlutterViewConfiguration()的size与devicePixelRatio达到适配的目的二、要解决这个问题,就需要了解键盘弹起整个页面做了哪些事情来入手了假设页面如下:void main() { runApp(MyApp());}class MyApp extends B
2021-07-31 15:23:33
3221
原创 Flutter自定义View之——价格选择器|双向滑动|手势处理
源码下载地址一、本篇文章通过自定义View实现的效果图二、现在对这个组件进行一一拆解,如下:顶部选中的结果我们可以单独拿出来,通过监听选择器的变化来显示值就可以底部固定的灰色进度,绘制圆角矩形刻度线,绘制直线;需要注意的是开头和结尾的刻度无需绘制刻度文字,绘制文字开始与结束的滑块,绘制图片红色选中的进度,绘制圆角矩形手势处理三、这里重点说一下绘制文字这块由于文字是与刻度居中对齐的,所以在计算坐标时 公式如下:每一个文字的起点X坐标 = 画布宽度 / 5 * 第几个刻度 - 文
2021-06-19 14:27:56
812
原创 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
7625
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
5923
原创 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
3196
4
原创 微信小程序蓝牙(BLE)开发与蓝牙设备数据交互开发总结
需要做一个类似于美团单车小程序扫码开锁的程序,需要使用到微信小程序的蓝牙模块功能与蓝牙锁进行交互一、这里我先把我遇到的两个天坑在这里先说明一下:1、根据锁的开发文档描述:读特征值是000036F6-0000-1000-8000-00805F9B34FB,可实际开发下来发现:在Android手机是使用这个,在iOS手机确是0000FEC8-0000-1000-8000-00805F9B34FB这个问题一直没有搞懂!(上面这两个特征值至是举例)2、开启读特征值通知成功后发送数据给锁,无法收到锁回复的数据
2020-08-27 22:51:50
6377
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
9948
29
原创 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
1743
4
原创 记一次艰难的OutOfMemoryError:Could not allocate JNI Env问题排查
当我们看到这个错误的时候第一反应是不是内存泄露导致程序无法申请到内存而导致的,然而查下来的事实告诉我并不是的…
2020-05-27 17:32:05
3644
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
4561
5
原创 Netty在Android开发中的应用实战系列(六)——— 自定义协议进行拆包
之前的文章有写过Netty的拆包处理Netty在Android开发中的应用实战系列(四)——— 粘包 | 拆包 处理一、这篇文章重点讲一下Netty中自定义协议的拆包需要怎么处理,也就是Netty提供的LengthFieldBasedFrameDecoder拆包器二、一般情况下我们都会定一个数据包的格式,如下: 包头(共10个字节) 扩展数据 标识符...
2020-04-24 22:31:09
1037
2
EthernetUtil.java
2020-08-21
Android使用AudioRecord、MediaRecorder录制音频
2020-02-29
Spring MVC文件上传
2017-11-17
Flutter 通过BottomSheetDialog实现抖音打开评论区,内容自动上推、缩放效果
2023-09-08
Futter自定义MultiChildRenderObjectWidget
2022-12-13
CollapsingToolbarLayout.zip
2021-07-13
VideoH264.zip
2020-02-26
NettyAndroid,Netty在Android中的使用
2019-09-21
LicensePlateKeyboard.zip
2019-08-31
Mvp+RxJava2+Retrofit2 搭建一个属于自己的开发框架
2019-03-27
关于Android系统中iptables(防火墙)
2018-05-09
android jni调用底层函数
2016-11-28
Android6.0开启WiFi热点出错
2016-10-08
有开发过桌面Lanuncher的不?
2016-09-19
Android 怎么打开手机的位置信息,也就是gps
2016-09-12
哪里可以下载Android系统软件的源码?
2016-09-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人