自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (7)
  • 收藏
  • 关注

原创 TKinter在子线程更新进度条UI

一、背景要用 python 做一个小工具,需要在子线程任务中更新界面,例如更新进度条,如果用 Pyqt5,Pyside2 等,可以通过在 QThread 里用pyqtSignal 来发射信号更新 UI,但是由于这俩框架做出来的程序打包成 .exe 后,包体积实在太大,这小工具界面又未复杂到非要使用 Pyqt5 的地步,以包体积换方便用户就不方便了,就选择使用 Tkinter 来实现好了。最终效果:二、问题分析问题一:TKinter 里原生控件太少,连进度条控件也没有找着,只能自己画一个了;问题二

2021-03-04 15:43:23 2443 5

原创 android一种不规则布局的实现方式

一.背景正准备出去抽根烟的你突然被产品经理叫住了,“快来,快来,我告诉你一个好消息,前几天我不是说要给 app 的菜单入口这一截 UI 美化一下嘛,我昨天突发灵感,已经想好了一个很有特色的样式,这下我们的 UI 一定和别人的不一样,我们要让产品富有品牌表现力”。这看起来是挺有特别的,不过感觉有违 android UI 排列常理呀,形状倒是没什么问题,关键是这无缝衔接就有点奇怪了,这形状最简单...

2019-06-29 15:07:49 3273 9

原创 网页监听返回键

如果项目希望和运行在设备自带浏览器里一样的返回交互,使用第一种方案;网页无需做任何处理,app端监听按键来处理返回键。如果项目以网页端逻辑为主,apk只是当作一个加载网页的容器,希望在网页里完全控制返回键,使用第二种方案;网页来控制返回键,app端要通过js通知网页端,并提供退出页面的方法。如果希望在网页里根据接口数据动态决定由网页还是native控制返回键,使用第三种方案。

2018-07-24 09:26:57 4599 1

原创 Type inference failed: Not enough information to infer parameter T in fun <T: View!> findViewById(id

Type inference failed: Not enough information to infer parameter T in fun findViewById(id: Int): T!

2023-12-25 20:30:00 99

原创 org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ‘:app‘.

Incremental java compilation is an incubating feature.FAILURE: Build failed with an exception.What went wrong:A problem occurred configuring project ‘:app’.> java.lang.NullPointerException (no error message)Try:Run with --info or --debug option to get m

2023-12-25 20:15:00 756

原创 java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{25e06b25 position=11 id=-1, oldPos=-1, pLpos:-1 no parent}

2023-12-25 20:00:00 92

原创 kotlin dialog 异常全屏显示

关键在第 5 行,这里带?是有区别的,因为声明的 dialog 是可空的,这里因为已经在上面判空了,所以第 5 不写 dialog?不会报错,但是这样写布局会变成全屏的;要写成 dialog?.apply{} 才会符合预期。

2023-03-03 19:30:00 219

原创 vue正式环境和测试环境切换

目的:根据不同的启动命令应用对应环境的域名及其它变量值创建配置文件:在项目根目录下创建这四个文件,作用及含义分别为:.env:公用配置文件,不管在哪个环境启动的项目,都会使用这个文件里面的变量,下面三个文件里和此文件同名的变量会覆盖.env里的变量,不同名就合并,也就是说.env里的同名变量优先级更低;.env.development:开发环境,默认不指定任何环境启动时就使用这个文件里的变量;.env.staging:测试环境,在 package.json 启动命令后加 --mode stag

2022-05-18 21:00:00 5833

原创 apk v1+v2命令行签名命令

v1签名方式jarsigner -v -keystore [a] -signedjar [b] [c] [d]-verbose:输出详细信息[a]:签名文件路径[b]:签名后的apk文件名[c]:待签名的apk文件名[d]:签名文件的别名例如:jarsigner -verbose -keystore my.jks -signedjar signed_v1.apk unsign.apk myalias执行命令,会提示输入密码,输入签名文件密码。v1+v2签名方式java -jar a

2022-05-07 16:56:57 3795

原创 计算机等级算法

[问题描述]求最大整数n及下列不等式左边的值,使得1+(1+2)+(1+2+3+…+(1+2+3+… +n)≤m ( m为小于32768的正整数)[输入]一个正整数 m[输出]共一行,输出两个数。n的值及1+(1+2)+(+2+3+…+(+2+3+…+n)的值# 递归def func1t(n): if n <= 1: return 1 return n + func1t(n - 1)def func1(m): n = 0 n_res

2022-03-27 13:03:51 488

原创 android模拟器上https抓包

通过 xposed+charles 在 android 设备上进行 https 抓包。

2022-02-12 11:33:44 3707

原创 centos上安装android打包环境

一、安装 java 环境** 1.1下载 liunx 版本的 jdk **地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html** 1.2拷贝到 linux 上并解压到应用程序目录**scp D:\jdk-8u311-linux-x64.tar.gz test@ip:jdk-8u311-linux-x64.tar.gz解压tar -zxvf jdk-8u311-linux-x

2021-11-08 20:00:00 809

原创 Appium使用

1.安装pip install Appium-Python-Client2.基本使用import timefrom appium import webdriverdesired_caps = dict()desired_caps['platformName'] = 'Android' # 大小写无所谓,但是不能乱写desired_caps['platformVersion'] = '5.1.1' # 不能写错desired_caps['deviceName'] = 'Android

2021-10-15 11:16:00 345

原创 android 广播自定义权限

一、广播接收者定义的权限你的应用定义了一个广播接收者,你不希望谁都能在自己的应用里发送这个广播让你接收到,所以你打算定义一个权限来控制一下。1.在 AndroidManifest.xml 文件里声明一个新的权限<permission android:name="com.xxx.xxx.permission" />2.在声明的广播上加上这个权限 <receiver android:name=".broadcast.MyBroadcast" an

2021-09-09 16:58:58 3662

原创 ES6的导入和导出

一.导入和导出1.加 default 是导出一个对象,不能用大括号直接解包。libs/http.jsfunction axiosPost(options) {}function axiosGet(options) {}export default{ axiosGet, axiosPost}使用时要这样写:import obj from '@/libs/http'obj.axiosGet()2.不加 default 是导出一个数组,要用大括号解包export {

2021-08-24 11:31:10 637

原创 flex布局最后一行元素左对齐

需求:元素高度不固定,总数不固定,一行 6 个元素方案一(×): 使用justify-content: space-between;自动设置列间距的情况<template> <div class="ft"> <div class="div-flex"> <div class="item" v-for="i in 5" :key="i"></div> </div> </div><

2021-08-11 14:21:32 1331 3

原创 pandas时间序列

1.datetime 模块操作时间 strptime = datetime.strptime('2020-01-01', '%Y-%m-%d') print(strptime, type(strptime)) # 2020-01-01 00:00:00 <class 'datetime.datetime'>如果时间变成了 2020/01/01,这时后面的格式得手动改成 %Y/%m/%d2.dateutil 操作时间 parse = dateutil.parser.p

2021-06-15 10:12:06 1278

原创 ref,toRefs,reactive的用法

ref 的用法:<template> <div> <div @click="name='李四'">{{name}}</div> <div @click="age=21">{{age}}</div> </div></template><script>import { ref } from 'vue';export default { na

2021-06-01 20:11:17 201

原创 python 闭包

1.何为闭包?def func(x): def func1(y): print(x+y) return func1f = func(1)f(2)函数里面再定义一个函数的,里面这个函数会乃至外层函数传入进来的参数,那么把这个函数及用到的外层函数的参数这个整体称为闭包。2.和普通函数有何区别?为什么要用闭包?普通函数和lambda函数只能传递函数功能,不能传递可以保存到一个小空间的数据;例如你要计算 ax+b 的值用普通函数是这样写def func(x, a

2021-05-25 10:53:47 139

原创 vertical-align属性的用法

vertical-align属性baseline(默认值) :把行内级盒子的基线与父盒的基线对齐,如果没有基线, margin bottom边缘与父盒基线对齐;sub :把行内级盒子的基线降到父盒下标的适当位置;super :把行内级盒子的基线升到父盒上标的适当位置;<percentage> :把行内级盒子提升或者下降段距离 (距离相对于line height计算),0%意味着同baseline一样;<length> :把行内级盒子提升或者下降一段距离 , 0cm意味着同b

2021-05-25 10:35:35 6201

原创 网页不同分辨率适配

简介你大声的嚷着你的手机分辨率就是1920*1080的,这是你攒了足足两个月的钱后在小米官网买的红米手机,绝不可能有假。你写了一个宽为 960px 的 div,用手机的浏览器横屏打开后,你期望这个该死的 div 会和在电脑上的浏览器加载出来一样的效果,只占屏幕的一半。结果却让你纳了血闷,明明电脑上分辨率和手机分辨率都是1920*1080,为何电脑上 960px 正好占一半,手机上却占了一大半,几乎占满了你手机的整个屏幕的宽。然后你去问了前端大神这是怎么回事,大神欲言又止,看起来并不太想仔细的给你解释,

2020-11-17 16:35:33 6268

原创 Rxjava1和2在网络封装时的一些区别

1.TransFormer的区别在使用 Retrofit 和 Rxjava 处理网络流程时,一般会统一处理结果BaseModel.javapublic class BaseModel<T> { public String code; public String message; public T result; public boolean su...

2019-11-06 11:03:11 342

原创 ItemDecoration实现等分间距

一.背景远古时代,GridView 和 ListView 可以直接使用其自带的 api 设置 item 之间的分割线,通过修改分割线的粗细和颜色等可以轻松实现分割线和间距类的效果,还有的直接通过在 item 的布局里设置 margin 或 padding 来实现,后来有了 RecyclerVIew,但是却没提供设置分割线的 api,不过提供了一个功能丰富的 ItemDecoration 类,这个...

2019-10-25 15:37:19 2504

原创 记一次卡顿优化

1.背景这是一个视频通话的项目,就类似于微信视频通话,但是和微信等其它一些视频通话 app 的逻辑有一些不一样的逻辑,例如微信拨打别人时会直接进入视频页面,根据设备的性能(如果性能不好,可能会慢吞吞的打开摄像头预览)来打开己方画面,这时就算慢一点打开预览,用户也不会关心的,为什么呢?因为还没接通嘛,谁会关心自己的画面有没有出来呢,然后等到对方接听后,再直接显示对方画面,这样就无缝衔接上了,很正常...

2019-10-23 14:32:33 460

原创 RecyclerView系列之侧滑删除和拖拽排序

一、背景前面已经实现了 RecyclerView 的上拉加载更多,增加 header,自定义滑动菜单,基本能满足大部分场景的样式了,就算不满足也能通过直接改部分代码轻松实现新的样式;不过这一次产品玩别的 app 时发现了一个新的交互方式,某些列表不需要复杂的操作,只需要删除操作,那么如果用那种滑动菜单的交互方式,用户就得先把菜单滑出来,再点删除按钮才能删掉,这样一来用户就多操作了一步,不如直接让...

2019-06-29 15:07:24 922

原创 RecyclerView系列之滑动菜单

一、背景前面已经实现了 RecyclerView 的下拉刷新和上拉加载更多,给 RecyclerView 添加 header,这两个用的比较多,这次实现的是滑动菜单,实现这个是因为产品经理通常会告诉你,我们要做一个和某某应用一样的效果。有人就说了:“这产品总是模仿,总是让做和别人一样的效果(小声嘀咕:关键这还真不那么容易实现)”。这就不能忍,那还有让你更不能忍的,产品告诉你做一个跟 QQ 的滑动...

2019-06-29 15:06:49 1739 1

原创 RecyclerView系列之增加header

一、背景在RecyclerView还没出来时,列表布局基本都是用 ListView,app 中一般都会有这种设计,上面一个 banner 轮播图,下面一个列表,特别是一些电商类,新闻类 app。下面是最终效果:向上滑动列表时,上面的轮播图就会被滑上去,显然是一体的,用 ListView 时,可以把上面的轮播图控件作为一个 HeaderView 加到 ListView 中,爽的是 ListV...

2019-06-29 15:05:52 2201

原创 RecyclerView系列之加载更多

一、背景很久很久以前简单封装过一次RecyclerView,后来一直开发TV端,列表的需求花样不是很多,主要是解决TV端各种兼容问题,也没怎么琢磨这个美丽的控件了,现在打算重新整理一下,其实网上已经有很多优秀的开源项目了,涵盖功能多,但是就因为功能太多,用起来反而有一些不方便的地方,例如用在TV上或者别的什么地方,有的地方得根据需求和兼容问题作出修改,这样改起来就麻烦了,看的头皮发麻呀,而且很多...

2019-06-29 14:49:02 4642 4

原创 python虚拟环境

1.为什么要使用虚拟环境 使用python开发时免不了要使用一些三方框架,例如要使用Django时,可以直接通过命令来安装pip install django==1.8.0这时自己的项目是使用1.8.0版本的Django,运行没有任何问题,但是如果别的项目使用的是1.9.0版本的Django,在这个环境下可能就跑不起来了,这时如果直接把本地的Django更新到1.9.0,这个项目倒是可...

2018-07-24 09:26:32 3778 1

原创 18.异步IO

一.协程 1.1简介 协程(Coroutine)又称微线程,程序中的函数,又称为子程序,在所有语言中都是层级调用,例如在A函数中调用了B,在B的执行过程中调用了C,C执行结束返回结果到B,B得到结果继续执行到结束返回结果到A,A拿到B返回的结果继续执行到结束,子程序的调用是通过栈实现的,子程序是一个入口,一次返回,顺序调用;而协程模式在执行过程中可以中断一个子程序去执行另一个子程序,在适当的时...

2018-07-24 09:26:16 3690

原创 17.Web

一.WSGL 1.1.WSGL接口的实现 用Python 开发web服务端需要用到WSGL接口,WSGL接口定义很简单,只要求web开发者实现一个函数,就可以响应HTTP请求了。 一个最简单的web项目:#t17_1.pydef application(environ, start_response): start_response('200 OK', [('Content-T...

2018-07-24 09:25:53 3770

原创 16.数据库

1.SQLiteimport sqlite3dbName = 'test.db'def createTab(): connect = sqlite3.connect(dbName) cursor = connect.cursor() cursor.execute( 'CREATE TABLE IF NOT EXISTS student (id ...

2018-07-24 09:25:39 3887

原创 15.网络编程

1.TCP server:import socketimport threadingimport timedef tcplink(sock, addr): print('Accept new connecting from %s:%s' % addr) sock.send(b'Welcome!') while True: data = so...

2018-07-24 09:25:22 3765

原创 14.GUI

1.Python支持的图形库 Python支持图形化界面的三方库: Tk , wxWidgets , Qt , GTK 其自带的库是支持Tk的Tkinter。2.调用逻辑 Python代码调用内置的Tkinter,Tkinter封装了访问Tk的接口,Tk是一个用Tcl语言开发的支持多个操作系统的图形库;Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。3.示例 fro...

2018-07-24 09:24:56 3644

原创 13.三方模块

PIL requests chardet psutil1.PIL PIL模块提供了操作图像的强大功能 画一个验证码图片:import randomfrom PIL import Image, ImageFont, ImageDraw, ImageFilterdef getChar(): return chr(random.randint(65...

2018-07-24 09:24:10 3691

原创 12.常用模块

datetime collections:namedtuple,deque,defaultdict,OrderedDict,Counter base64 hashlib,md5 itertools:无限迭代器,takewhile,cycle,repeat,分组 contextlib urllib XML:sax,dom1.datetime 当...

2018-07-23 16:23:52 3635

原创 11.正则表达式

1.常用 \d:数字 \w:字母或数字 \s:空格或tab .:任意字符 [0-9a-zA-z_]:0到9或小写字母或大写字母或下划线 A|B:A或B(例如(P|p)ython匹配’Python’或’python’) \:转译字符 *:0个或多个 +:1个或多个 ?:0个或1个 {n}:正好N个 {n,m}:n至m个^:行的开头,^\d表示必须以数字开头 :行的结...

2018-07-23 16:23:03 3742

原创 10.多线程,多进程

系统差异 进程池 进程间通信 多线程 线程锁 ThreadLocal1.系统差异 在Linux和Unix系统上,os模块有fork调用方式来创建子进程,在windows上可用multiprocessing模块来操作进程。 fork方式:import osprint('Process (%s) start...' % os.getpid())#...

2018-07-23 16:22:37 3669

原创 9.文件操作

系统命令 文件操作 序列化 JSON1.系统命令import osprint(os.name) # 操作系统类型print(os.environ.get('CLASSPATH')) # 获取系统中CLASSPATH环境变量的值print(os.path.abspath('.')) # 当前目录的绝对路径输出结果:nt.;C:\Program ...

2018-07-23 16:21:25 3902

原创 8.IO

读写文件 字符编码 StringIO BytesIO1.读文件 def readfile(filepath): return open(filepath, 'r')print(readfile('test8_1.py').read())输出结果:def readFile(filePath): return open(filePath, ...

2018-07-23 16:20:02 3681

android TV端加载h5处理返回键的测试apk

一个android TV端测试apk和h5示例demo,适用于开发h5放到android app里加载联调的开发人员使用,主要用来验证测试网页里按遥控器返回键时的流程

2024-03-04

xposed离线安装文件

xposed3.15版本安装包+xposed89版离线安装框架文件+JustTrustMe.apk

2022-02-12

EthernetManager需要用到的android源码jar包

获取android设备有线连接时的网络信息,ip,子网掩码,网关,dns时,需要用到EthernetManager这个被android api隐藏的类,这个jar包就是从源码抽出来的网络模块,导入可直接使用。

2018-05-10

SecureCRT连接android机顶盒或linux远程服务器工具

此工具可通过用串口线连接机顶盒等android设备,在命令行控制设备,也能连接远程linux服务器。

2018-05-10

apache-cxf-3.1.6所有jar包

apache-cxf-3.1.6所有jar包

2016-06-15

HttpClient-4.1.1.jar包

android升级项目编译版本到23后,官方移除了HttpClient的相关代码,一些三方library中使用的HttpClient资源就找不到了,需要导入这个jar包来支持

2016-05-24

RecyclerView实现下拉刷新和上拉加载更多

RecyclerView实现下拉刷新和上拉加载更多功能

2016-03-07

android点击查看大图,ViewPager实现左右滑动切换、缩放图片

点击缩略图查看大图,支持滑动切换图片,缩放图片,封装成了一个工具类,基本两行代码实现上面需求。 代码很清晰,可以自已微调。

2016-02-29

空空如也

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

TA关注的人

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