- 博客(31)
- 收藏
- 关注
原创 安卓-关于setOnTouchListener和setOnClickListener冲突的问题
一般来说,在TouchListener内的onTouch是有一个布尔类型的返回值的,true表示我当前重写的函数已经处理了event时间;那这里就可以做文章了:如果我希望按钮可以正常点击,那我就在touch内调整,让它在不是滑动的情况下返回个false,把事件丢回去不就可以了。我在我的应用上搞了一个悬浮窗,我希望可以自由拖动它,并且在悬浮窗里面设计了一个按钮。但是当我获取完其内部的按钮并且设置监听的时候出现了问题:按钮一直点不动。研究了一番发现,是event被floatView上的监听器消耗了。
2025-03-27 17:20:24
299
原创 ZIP_STORED和ZIP_LZMA没有compresslevel参数!
这也很好理解,store本身就不压缩,就是直白储存,你指定level自然没有意义;我现在用的这个ZIP_LZMA模式本身就是一个高压缩比的算法,再指定level,那不就是玩呢。我使用ZIP_LZMA模式进行压缩,并且尝试指定compresslevel;神奇的事情出现了:不管怎么调level,压缩出来的大小都不会有改变;所以,ZIP_STORED和ZIP_LZMA接受的compresslevel参数根本就没有意义!对于compresslevel这个函数,它是用来指明压缩等级的;
2025-03-24 15:10:08
275
原创 使用py-ffmpeg批量合成视频的脚本
我只测试过全都是我自己那款小米摄像头出来的mp4文件格式,虽然说我在检测文件夹下视频路径的代码里面加了好几个类型,但是不保证会不会多种东西杂在一起又闹出什么不可描述的奇葩事,所以建议转码的时候将相同源的放在一起转,最后再一起合并(是相同源,比如说一个摄像机出来的这种。我有一个小米摄像头,用它录出来的视频全部都是3s一段3s一段的。但是问题又来了,最开始我使用格式工厂合并,但是发现格式工厂默认会对全部文件搞一次重新编码,这就把我的电脑搞得特别卡,总共几个小时1w多个文件编码了几个小时都好不了。
2025-03-15 16:39:15
557
原创 关于py文件目录的思考
这里是由于pycham是以项目形式指引根目录的,而到了idle上我们直接打开的是单个文件,所以根目录就变成了B文件夹。而这种情况下from A.Aimport A就变成了在B文件夹下找一个A文件夹里面的A文件,这样自然就找不到了。这里'..'代表回退一次目录,有几个回退要根据各自的项目情况决定。A文件夹:A文件A类。B文件夹:B文件B类。
2025-03-14 14:09:22
109
原创 关于py不能导入pyw文件内的class的问题
由于我的window类是用qt写的,懒得再pip下载了,就直接在原文件后面加了个main函数,改后缀名为pyw直接跑了。有一天去朋友家玩,顺便想跑一下那个代码,由于他没有编译器,我也没有打包成可执行程序,就安了一个idle。折腾一番之后,才发现。编译器是不能直接读取pyw内的class的,得给他改回py后缀。回去之后用我的pycham打开,window类直接跑不了了,提示导包错误。我有一个window类,调了另外一个py文件里面自己写的class。看了一下 竟然是我之前改了的那个文件的问题。
2025-03-14 13:34:56
78
原创 安卓-关于使用startForegroundService启动服务于服务提前终止的思考
那为什么会这么反直觉呢,为此,我又特地去调了安卓的原码:在frameworks/base/services/core/java/com/android/server/am/ActiveServices.java中,有一个serviceForegroundTimeout方法,其中:有这么一个豁免情况引起了我的注意,在这个情况下,不会触发未调用startForeground的强制退出。我真的是低于了计算机的速度了(微笑)对于我需要的前台服务,如果说我没有定位相关的服务,我不应该进入到定位的获取逻辑中。
2025-02-28 18:04:43
1263
原创 关于java开发过程中tostring与Formatter的思考
从了解到这个之后,我就像发现了一个新大陆一样,把这种模式在我自己的对象类中用的不亦说乎,什么东西都按照自己的个性化搞了许许多多复杂的拓展,直到有一天发现把整个class搞得臃肿务必,我已经。所以,到了这里很明确了:我们看到的toString方法一般都是用于简单调试或者非常基础的格式化的(理论上从职能单一原则角度讲,只要你的目的是格式化,你就不应该这样写)2.这个toString是继承于Objcet的,如果没有override这个方法,就是按照java的逻辑给你去打印出原始的地址的方法;
2025-02-26 16:43:00
217
原创 使用符号链接将一个项目中的库共享到另外一个项目的方法(非复制 同步)
移动成功之后,如果你有导入原项目里面一些其他的class或者一并移动到lib里面的其他class,有可能不会被自动refactor掉,这时需要手动把import删掉,然后一般来说按option(window好像是control)之后就会弹出正确的引用了。问了下ai之后,推荐给我的第一个方法是maven,在操作一番之后,发现maven是通过打包成rar形式的,那就相当于我使用的时候没有之前对tool里面的class随用随改那样地便捷。发现想用到之前的一些class,但是又不想直接复制(改动的话会不同步)
2025-02-25 22:17:08
287
原创 安卓-地图开发-setInfoWindowAdapter切忌滥用单例模式
在把这个debug了个底朝天之后,我才开始往外面找,才考虑到是不是绑定的问题。然后才在上层代码中溯源到了它的绑定操作,看到这么个getInstance,心凉了大半,之前在设计这个adapter的时候图省事埋了个大坑,取消单例之后。然而,当我尝试退出应用后再次进入时,发现它死活不刷新。我对地图api的InfoWindow做了个性化自定义设计,使用。然而发现打印出的内容是正常更新的;绑定我自定义的内容进去;
2025-02-13 16:38:28
200
原创 安卓-BigTextStyle通知不显示问题
使用前面的方法时发现只显示了一个channelId,而不是我的newText文本。在借了同学的红米note系列,安卓14的机子后发现文本正常显示。目前不确定是小米新系统特性还是安卓15后规范了NotificationCompat.Builder的定义。总之相关规范还是应遵尽遵为妙。关于BigTextStyle的定义中有一个setContentText()的话。我的手机是华为p30 pro,api号29;这两天入手了红米k80,安卓15。给他加上去后,发现一切正常了。
2025-01-03 14:36:37
155
原创 sql server使用azure-sql的Database version下出现No appropriate protocol 问题
一直向下滑,看到Azure SQL Database,它虽然是支持4的,但是我心里面堵得慌,万一Azure SQL Database和老师给的SQL Server xxx对应的package是不一样的呢。一对照错误,一致Solution很简短,就几句话,说白了是sql server的包的版本问题,它出问题的是4,换成8就好了。ps:我使用maven { url 'https://maven.aliyun.com/repository/public' }了之后出现了找不到相关的问题,不排除是镜像更新不及时。
2024-12-31 22:06:36
751
原创 mac上用docker创建sql server出现芯片架构不符的解决方案
为了解决这个问题,我们可以把mcr.microsoft.com/mssql/server:2019-latest-arm64换成sql mcr.microsoft.com/azure-sql-edge,这样就可以解决了。是因为我pull的是mcr.microsoft.com/mssql/server:2019-latest-arm64,在这个情况下它不支持arm64架构的芯片。
2024-12-31 21:15:32
221
原创 如何删除datagrip里面database exploer的数据库
我目前还没有系统学过可以容纳多种数据库的管理软件,之前用sqlite的时候因为很多软件要收费,我jb家又有学生免费,就下datagrip来用了。每次sqlite的db都是直接拖进去,时间长了就是一堆库怼在database exploer里面,回退键没反应,又找不到删除键,卡都卡死。这个东西点开之后长这样:你选中每个data source之后上方的减号就变得可以点击了,点击之后这个database就会消失。唯一一个像删除的deacticate也不是删除,更有胜者这个按键都是灰色的。
2024-12-31 13:52:52
435
原创 安卓-通过无障碍服务实现开机自启、服务保活功能
但是被逼到走投无路的我看到这个之后仿佛见到了珍宝:这个函数在用户使用手机时会被频繁调用到,那我只要让我的service继承AccessibilityService。就可以了,而我在onAccessibilityEvent内调用我自己服务的启动方法后也成功地在手动杀死我的软件、开机启动时让我的服务运行。而我们必须要强制继承该方法,在该方法内可以处理event,在我们希望的情况下给出相对应的操作。另外,服务必须要使用startForeground方法,否则如果你的应用不在前台运行的情况下是不允许启动服务的。
2024-12-23 17:17:34
446
原创 java-通过继承android.location.Location实现自定义化的location对象
然而,在调用安卓原生的android.location.LocationListener获取定位对象时,给到的将是以默认WGS84为坐标系的点,所以由于该种原因,导致我们在调用的大多数大陆地区api地图时会出错。2.获取到的定位点有可能出现漂移现象,为了给获取到的点打上标记,以便于后续的处理,我希望加上相关的漂移属性。通过计算y=y0与y-y1=(y2-y1)/(x2-x1)(x-x1)的交点x(其中,(x1,y1),(x2,y2)是多边形上两个连续的边界点),并且通过判断它与x0的大小关系进行记数。
2024-12-19 21:03:29
773
原创 安卓-高德api-polyline.remove()删除后添加无效问题
但是,经过测试发现这种情况会出现地图上仍然存在应该被删除的线的情况。具体原因不明,所以建议:直接对原polyline对象执行set操作(虽然官方文档没有写,但是经过测试,直接set会覆盖掉之前set的所有polylineOptions)执行remove操作之后,虽然polyline不会变成null,但是对它的所有操作不会起作用。但是,在执行remove之后,重新set后看不到任何线。我的代码需要对地图上的线进行重绘更新,所以思路是。,坑人的是也不会报错。
2024-11-26 20:03:55
245
原创 java-没有在迭代器中修改对象却出现ConcurrentModificationException的问题-对深浅复制(Deep&Shallow Copy)的思考
由于objectList是浅复制,所以当objectList被不止一次赋值给一个新的对象的constructor后,对于每个新的对象中的list都指向一个相同的地址。但是,ConcurrentModificationException一般出现在多者试图并发修改一个list时出现的报错。ConcurrentModificationException一般出现在多者试图并发修改一个list时出现的报错。但是审视代码,仍然没有发现代码中有任何设计对list的更改。临时把这行代码屏蔽掉之后,在后续代码中的一个。
2024-11-26 12:44:21
118
原创 PyQt中QProgressBar控件不显示问题
self.progress_signal.emit((progress / total_files) * 100) # 发射进度信号。由于我是点击按钮之后要进行一个耗时通信,很自然就把要跑的东西放到class Worker(QThread)里面。我用信号progress_signal = pyqtSignal(int)传递进度值。恭喜问题出现:÷出来的数值不一定是整数,我也没用//于是一个小数被当成int传进去之后就朝范围了。问题出在这个int上,我的发射语句是这样的。
2024-11-04 00:48:59
249
原创 python-thread模块下运行高io并发代码后windows任务管理器出现已挂起、运行速度底下
改完之后很明显地看到cpu几乎被py干爆了,而磁盘活动时间虽然由于大量读取的关系出现了严重的速度波动,但是写入速度以及运行处于一个较为稳定的工作状态。找到问题之后,就好解决了,只要将外部的操作扔到进程池而不是线程池。让内部的io操作在一个进程中折腾,而通过进程池搞出若干个进程,速度问题就解决了。换成线程写入之后代码刚刚运行的那一下活动时间上去了,但是没两下又掉了下去,不温不火,过一段时间后甚至还会出现掉到0的情况。这样一搞,发现问题更大了,本来运行好好的代码时不时还出现已挂起,这说明我的代码完全阻塞了啊。
2024-10-20 15:29:10
376
原创 python-magic模块报错无valid magic files问题
这个是因为在debug中看到了被编码过的路径,灵光一闪感觉不对劲(因为之前也有用过中文路径,那种情况下debug是不会出现路径名被编码的)在前面它自动获取了库下magic.mgc的路径(这个就是magic文件),并且做了判断,由于我是默认安装在user目录下。实在没办法后,在朋友的笔记本上试了一下,发现都可以运行。这时我才意识到可能是我的环境除了问题,折腾半天重装了python之后发现仍然没用。这是什么原因造成的呢,magic files是linux相关设备自带的一个文件,用于类型识别。
2024-10-09 21:21:46
814
1
原创 Python-mht转html-用email库转Android端QQ浏览器保存下的mht文件
数据有风险,转码需谨慎!但是由于我手上杂碎文件较多,为了节省内存,就选择将小文件逐一保存计算哈希,采用相对位置的方式将路径映射到主文件中。查询了若干csdn也好github也好的教程或者开源的mht转html代码,发现他们大多数都是针对一些邮件使用的,最离谱的是我还找不到这格式的通用标准。因为它就是整个网页的核心,而后面的都是主文件的附加内容,比如css文件,图片文件等等。分析到这里,要如何把mht文件转为HTML文件的思路就清晰了——获取出第一个html文件,建立主文件内部与其他杂碎小文件的关系。
2024-09-20 00:36:11
1418
原创 Python-email库-message.walk()的遍历信息get_payload为None的解决办法
提示:本处理方法仅适用于内部不再包含其他multipart对象的mht文件,如果你要处理的mht文件中不止包含应该multipart。请加一个判断,仅在第一次的时候continue,后面的情况走递归调用前面的代码。发现出问题的对象的type是multiple,就想着我应该要再循环一次,获取出它内部的信息。破案了,对于每一个message,它会把自身也遍历进去(包含在message这个信息里面)起初,我尝试获取mht文件每个boundary下的信息。这就给我搞懵了,不信邪的我把它全打印出来看。
2024-09-18 20:31:47
244
原创 安卓-text控件-setOnLongClickListener中onLongClick返回值问题
总结:setOnLongClickListener中onLongClick强制返回布尔类型,true代表事件被消耗,则不会再去调setOnClickListener。同理,如果想要同时触发setOnClickListener,返回false告诉view事件没有被消耗即可。最初用这个的时候没有注意到onLongClick强制返回值,在编译器的提示下随便上了false将就运行。但是很快发现长按时单击事件也会被触发。
2024-08-16 00:20:42
148
原创 java-不要把Arrays.binarySearch用在非数字上!
然后我想要找到每个对于的索引值,于是不知道怎么查的就找到了Arrays.binarySearch这个方法,之前这样跑了都没有问题。总结:不要把Arrays.binarySearch用在非数字上!用在数字上的话请先排好序。所以,这个东西很大程度是用在数字的身上的,虽然它写的是object对象。问题是这样出现的:我有一个array。这句话的返回值突然变成了-1。
2024-08-15 23:54:38
100
原创 安卓-高德api-将mapview恢复到正北、无倾斜的情况
animateCamera要传入的是CameraUpdate对象,CameraUpdate也不是只有CameraUpdateFactory.xxx单独设置逐个参数得到。相信大家在用地图的时候或多或少都有遇到过找不到北、手贱在不想把地图搞出斜角但是又移不回去的情况,这个时候就想要写一个按钮一键归位。把这两家伙的值都设为0就好了。但是这是有问题的,我发现动画会被打断,特别是当我想要再归位到一个我当前的位置,加上这句话的时候。得到了这个回复,好家伙,原来是通过factory,难怪我找了半天amap没找到。
2024-08-15 17:55:44
331
原创 安卓-高德api-每次重新进入程序都莫名其妙出现一个新的marker的坑——marker管理
直到我认认真真地坚信——这个bug是onstrat内的代码诱发的时候,我开始一个个排查,在它的一个子类的重写中我看到了currentMarker被重新初始化的语句。我一直天真地以为,只要我只有一个marker对象,就不会出现问题,但是回顾到高德的marker添加流程,我们会发现一个很坑的地方。marker是通过对amap对象传入markerOptions对象的反馈,所以我保证它的反馈值唯一是毫无意义的!总结:marker对象是由amap对象给出的,对其的管理要通过amap对象进行。
2024-08-15 02:27:20
199
原创 安卓-高德api-拖动点时让点到边缘后让地图往边缘方向走的解决方法
起因:写了一个软件要地图选点,最初设计时候没有考虑到地图缩小情况下要选的点不在地图上。这样对用户而言要不然要缩小地图,拖动点,放大,再拖点。有了极限方向,我们就可以计算出当前的点距离边多少距离,有了距离就可以算比例,有了比例就可以判断在不在边框附近了。拆分下来就是:判断是不是在边框附近,以及在哪个方向→通过animateCamera方法移动视图。判断在0.2范围内就做移动处理,移动尺度测试发现采用hight/length的0.01合适。先明确需求:我要拖动点到边框附近的时候自动将地图朝那个方向移动。
2024-08-14 21:56:08
284
原创 安卓-高德api-setOnMarkerDragListener冲突问题
但是在结束之后发现最后的一个maker是拖动过程中的maker,推测是由于onMarkerDrag过多导致的不同步。我希望在拖动点时可以同时获取结束的maker与中间过程的maker,也就是。这两个函数不能访问同一个变量。下建了一个变量随时对它更新。
2024-08-14 21:34:59
130
原创 安卓-高德api-aOptions.camera函数不起作用问题
但是,我按照要求设置了我自己的defaultPosition之后并没有生效,查询之后,发现可以在设置之后再加一句。(虽然我感觉除了最后一句前面的好像是在做无用功,因为已经手动调了camera了)强制将视图换到中心。但是这个终归不是权宜之计,毕竟官方推荐方法中只要设置了。这点在高德文档中有写到,并且给了相应的改变方式。每次打开地图,默认都是在北京。此处埋坑,有机会填坑。
2024-08-14 18:08:22
304
原创 安卓-高德api拖拽点/移动点无效的方案
由于我的应用场景要频繁对maker的location做改变,所以我最初只在首次初始化maker对象时设置draggable。然而,我在初始化maker对象之后再调用,由于maker对象存在,就不会对draggable参数进行更新。起因:对自己的app加一个功能,明明设置了draggable但是无效。首先,高德api是通过如下设置移动事件的处理的。最后在第一个判断语句加上,解决。
2024-08-14 16:08:07
840
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人