- 博客(54)
- 资源 (1)
- 收藏
- 关注
原创 升级targetSdkVersion至33(以及迁移至Androidx)
android.support.v4.widget.Space -> androidx.legacy.widget.Space(为使用space,还需要implementation 'androidx.legacy:legacy-support-v4:1.0.0)1.设置 android.useAndroidX=true 和 android.enableJetifier=true。7.注销build.gradle文件中的自定义路径(gradle tool插件7.x版本好像不支持自定义路径)
2023-09-27 11:34:03
1967
1
原创 fitsSystemWindows 与 paddingTop
现象:某个 ViewGroup 中装了个 EditText,不管怎么设置,ViewGroup 都出现paddingTop原因:如果某个View 的 fitsSystemWindows 设为true,那么该View的padding属性将由系统设置,用户在布局文件中设置的padding会被忽略。系统会为该View设置一个paddingTop,值为statusbar的高度。解决办法:重写该...
2019-11-27 10:41:35
727
1
原创 glide为列表加载大小不固定的图片
目标: 有一个列表,每个item中都有一个 ImageView,要求 ImageView 尺寸等于图片内容尺寸;当图片最大宽度超过屏幕宽度时,ImageView 宽度就固定为屏幕宽度,保持原图宽高比缩放显示图片。实现如下代码:RequestOptions mOptions = new RequestOptions() //.placeho...
2019-11-27 10:35:36
1217
原创 Android中阿里云文本垃圾内容检测接口的实现
1.注册账号申请 accessKeyId 和 accessKeySecret2.实现代码3.注意事项:1)参考官网的sdk发现,signString 方法中使用了DatatypeConverter.printBase64Binary(signData) 方法,但是在Android平台中,DatatypeConverter 的 theConverter 为空2)官网中待签名字符串的...
2019-09-20 20:12:43
715
原创 android studio 中把library发布到本地maven库和对本地maven库的引用依赖
假如要发布的library为 mylib1.在mylib的build.gradle文件中添加: apply plugin: 'maven'2.在项目根目录下新建一个名为 Repo 的目录,然后继续在该 build.gradle 文件的最外层添加:uploadArchives{ repositories.mavenDeployer { def r...
2019-04-25 14:34:37
1446
原创 不同android版本手机跳转到通知设置页面的方法
public static void open(Context context) { // vivo 点击设置图标>加速白名单>我的app // 点击软件管理>软件管理权限>软件>我的app>信任该软件 Intent appIntent = context.getPackageManager().getLaun...
2019-04-11 16:40:14
1486
2
原创 AudioTrack的简单用法
参考https://github.com/renhui/AudioDemo/blob/master/audiodemo/src/main/java/com/renhui/audiodemo/MainActivity.javahttps://blog.youkuaiyun.com/ronaldo4511/article/details/89155457AudioTrack:用于输出音频数据,它有两种数...
2019-04-10 11:14:36
2566
原创 AudioRecord的用法
参考http://www.cnblogs.com/renhui/p/7457321.html1.计算缓冲录音数据的字节数组的大小。AudioRecord 需要一个容器来缓冲来自硬件的音频信息。int recordBufSize = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfig, audioFormat);...
2019-04-09 17:28:25
7396
原创 使用idea创建springmvc项目
1. 创建项目:File - new - project... - spring + spring mvc + web application - next - 设置项目名称和workspace - finish2.这是原始的项目结构3.在web/WEB-INF目录下创建目录lib和jsp4.把根目录的lib目录下jar包复制到新建的lib目录下,如下添加依赖...
2019-03-28 17:32:54
294
原创 Hash Hashtable HashMap ConcurrentHashMap
Hash算法:为快速查找而设计1.普通查找(例如数组):使用数组存储entry,查找 key=x的value时,需要去遍历entry,找出对应的entry才能找到value2.hash查找:查找key=x,对key取hash值得到value的内存地址,因此hash算法的查找的复杂度是 O(1)3.hashmap的hash算法:为了压缩hash存储时所需要的内存空间(所给予的空间是cap...
2019-03-03 13:25:37
129
原创 java内存空间与内存模型
内存空间分为五大部分:线程私有内存的 【栈】 【native栈】 【寄存器】 + 线程共有的 【堆】 【方法区】内存模型有三个特性:【可见性】 【原子性】 【有序性】jvm内存空间:管理的内存空间可以分为以下五个区域1.程序计数器(寄存器):线程私有的内存空间,记录着当前线程执行指令的情况,例如指定到哪一条字节码2.栈:线程私有的内存空间,保存了是 基本数据类型(int, l...
2019-03-02 16:31:01
182
原创 google data-binding的简单使用
1.数据绑定到ui的最简单使用1) 在 build.gradle 文件的 android 配置中加入dataBinding { enabled = true}2)在xml文件的根节点layout下添加data节点<data> <variable name="player" type="com.zls.myarc...
2019-01-10 11:24:09
233
原创 okhttp的源码简单追踪
参考: https://blog.piasy.com/2016/07/11/Understand-OkHttp/https://www.jianshu.com/p/82f74db14a181.基本调用方法OkhttpClient client = new OkhttpClient();Request request = new Request.Builder().url(url...
2018-11-26 11:11:10
184
原创 常用排序算法
//公共方法:交换位置 private static void exchangePosition(Integer[] arr, int index1, int index2){ int temp = arr[index1]; arr[index1] = arr[index2]; arr[index2] = temp; }...
2018-10-12 10:59:26
151
原创 Android touch 事件的处理流程
1.与 touch 事件相关的主要处理方法是: dispatchTouchEvent (onInterceptTouchEvent + onTouchEvent) onInterceptTouchEvent 只存在于 ViewGroup 中。2.在页面,touch事件的传递顺序,从外层到内层依次是 Activity,ViewGroup 和 View。3.Activity...
2018-08-25 11:21:17
3132
原创 Handler、Message 和 Looper 源码的理解
1.Handlerhandler的主要功能是发送消息和处理消息。在源码中,主要有四类方法:构造方法,获取 Message 的方法,发送 Message 的方法,处理Message 的方法。1)handler 的构造方法。可以看出,一个 handler 只对应一个 looper ,而 looper 和 thread 是一对一的关系。public Handler(Callback c...
2018-08-22 19:11:50
198
原创 对 ThreadLocal 类的理解
1.通过 synchronize 关键字,各线程可以共享变量。而通过 ThreadLocal 各线程彼此分隔,维护只属于自己的变量。2.ThreadLocal 本身不保存什么数据,它主要提供操作方法,从 ThreadLocalMap 中存取数据。3.ThreadLocal 联系着 Thread 和 ThreadLocalMap,每个 Thread 保存一个 ThreadLocalMap ...
2018-08-22 12:49:38
252
原创 双层嵌套recyclerview的整屏滑动
recyclerview 的 scrollstate 有三种 0 -> idle 1 -> dragging 2 -> settingrecyclerview 的原始滚动状态变化是1.拖动松手: 0 -> 1 -> 02.滑动松手: 0 -> 1 -> 2 -> 0要处理 recyclerview 嵌套 recycler...
2018-08-04 16:35:46
1570
原创 textview阻塞滑动事件!!!
在 viewpager + fragment + recyclerview 布局时,滑动发生在recyclerview的item上时viewpager无法滑动,而滑动发生在recyclerview的间隙或者没有item的地方时viewpager可以滑动。最终发现item上有match parent的text,此textview是阻塞viewpager无法滑动的罪魁祸首!!!...
2018-07-24 10:39:16
436
原创 自定义两端为椭圆形的进度条
1.定义属性<declare-styleable name="DownloadProgress"> <attr name="borderColor" format="color" /> <attr name="borderWidth" format="dimension" />
2018-06-12 17:14:22
1452
原创 pyplot 画图(二)
条形图1.plt.bar(list, list) 或者 plt.bar(list, Series)2.pandas.Series.plot(kind='bar')3.pandas.DataFrame.plot(kind='bar')import matplotlib.pyplot as pltimport pandas as pddata_train = pd.read_csv('data/...
2018-05-25 15:32:36
604
原创 pyplot 画图
参考 点击打开链接1. 使用 plt.plot() 画 折线图import matplotlib.pyplot as pltimport pandas as pdx = [1, 3, 7, 8, 12, 14, 17, 25, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40] y = [3, 5, 6, 10, 13, 23, 24, 27, 30, 28,...
2018-04-13 10:52:53
6186
原创 python读取csv的三种方式
import csvimport pandas as pdimport numpy as npdef get_csv_by_open(path, list_x, list_y): with open(path,'r') as csvfile: plots = csv.reader(csvfile) for row in plots: list...
2018-04-13 08:54:35
2991
原创 pandas 数据操作
参考 https://blog.youkuaiyun.com/xiaodongxiexie/article/details/53108959 https://www.cnblogs.com/chaosimple/p/4153083.html1. 从 csv 文件中读取数据pd.read_csv("path", encoding='utf-8'),返回的数据类型是 pd.DataFrame2. 【创建 Data...
2018-04-12 18:22:58
214
原创 python 函数参数与generator
def fn(*args): g = (x for x in args) print('g = ', g) print(next(g)) print(next(g)) print(next(g))fn(12, 1, 3)输出结果是g = <generator object fn.<locals>.<genexpr> at...
2018-04-10 11:30:05
825
原创 设置子视图的宽度超过父视图的宽度
有这样的需求:父视图宽为 W,子视图宽为 2W ,然后通过 setX 的方法使子视图在父视图中移动。普通情况下,不管在什么时机下设置 子视图的 width = 2W,还是设置 clipChildren为false,都无法起到效果。然而,把父视图设置为 Framelayout 可以实现需求。...
2018-03-09 11:47:38
840
原创 uiautomatorviewer.bat Please set ANDROID_SWT to point to the folder containing swt.jar for your ...
启动uiautomatorviewer.bat时可能出现如下错误:Exception in thread "main" java.lang.UnsupportedClassVerifier ......Unsupported major.minor version 52.0Please set ANDROID_SWT to point to the folder containin
2018-03-08 16:14:18
5194
原创 在springmvc的web项目的jsp文件中引用jquery
1.下载jquery http://download.youkuaiyun.com/download/yangwei19680827/74544192.选择一个版本的jquery,例如 jquery-1.8.3.js,放入webroot目录下的适当位置,例如 webroot/res/js/jquery-1.8.3.js3.在springMVC的xml文件中添加以下属性 4.在
2017-12-06 17:43:23
937
原创 使用yum命令报错File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
背景:使用 yum install "@Chinese Support"安装中文输入法时,报错原因:yum命令文件是由python2执行;系统把python路径指向了python3解决方法:1.切换路径到 /usr/bin路径下,找到python2.X 版本2.python2.X yum install .. 命令安装
2017-08-13 09:51:41
1366
原创 Retrofit框架替换AsyncHttpClient框架
1.背景1)项目中原来使用了 AsyncHttpClient框架。这套框架不满足 https + sni 的需要,需要改造。2)具体的页面中,有约100个接口,在200+ 处使用了AsyncHttpClient,格式类似于RequestParams params = new RequestParams();params.put("userId", hostUserId);par
2017-05-27 17:10:06
1372
原创 activity切换动画与overridePendingTransition方法
设置从 activity1 切换到 activity2 的动画加载方式1.在 activity1.startActivity(intent) 方法后,调用方法activity1.overridePendingTransition(anim1, anim2);其中 anim1 是 activity2 出现的动画,anim2 是 activity1 退出的动画2.在 acti
2017-02-09 10:36:30
349
原创 在spark集群中通过hive访问mysql数据库
除hive客户端外,所有模块都安装于spark集群中的master机器1.安装spark集群(参考http://blog.youkuaiyun.com/ronaldo4511/article/details/52886672)2.安装 mysql1) 查看系统当前是否已安装mysqlrpm -qa | grep mysqk # 列出和mysql相关的包,本机的结果只有一条 mysql-li
2016-11-30 19:46:47
4110
原创 spark2.0版本的 DataFrame、DataSet 与 Spark sql
参考:http://www.cnblogs.com/seaspring/p/5804178.htmlhttps://my.oschina.net/cjun/blog/655263?p={{currentPage%201}}http://spark.apache.org/docs/latest/sql-programming-guide.html1. 相关概念1) R
2016-11-30 11:44:01
7242
原创 RDD转换为DataFrame的两种方式及spark sql的简单实例
参考 http://zhao-rock.iteye.com/blog/2328161package spark_sqlimport util.HDFSHelperimport java.io.{File, PrintWriter}import org.apache.hadoop.conf.Configurationimport org.apache.hadoop.fs.FileSy
2016-11-28 16:26:57
11460
原创 value toDF is not a member of org.apache.spark.rdd.RDD[People]
编译如下代码时,出现value toDF is not a member of org.apache.spark.rdd.RDD[People] 错误val rdd : RDD[People]= sparkSession.sparkContext.textFile(hdfsFile,2).map(line => line.split(",")).map(arr => People(arr(0
2016-11-28 16:07:08
6274
原创 scala中hdfs文件的操作
对于org.apache.hadoop.fs.Path来说, path.getName只是文件名,不包括路径 path.getParent也只是父文件的文件名,同样不包括路径 path.toString才是文件的全路径名以下是hdfs文件操作的工具类package utilimport org.apache.hadoop.fs._import scala.collection.mutable.{H
2016-11-24 20:18:19
22747
原创 svn笔记
1.使用android studio checkout svn工程如何切换svn账号打卡 tortoisesvn的settings,在saved data中清除之前的认证信息即可
2016-11-17 08:43:19
340
原创 app实现状态栏和导航栏沉浸效果
在activity的oncreate方法中添加如下代码即可://当系统版本为4.4或者4.4以上时可以使用沉浸式状态栏if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //透明状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUC
2016-11-10 15:29:18
1783
原创 spark错误记录
1.问题:使用 ssh pa 登录 pa虚拟机时报错:ssh: connect to host pa port 22:no route to host原因:如果不是防火墙的问题,那么可能是pa的ip与记录在 /etc/hosts文件中pa的ip不一致解决:update /etc/hosts文件中pa的ip
2016-11-07 15:34:57
401
原创 使用idea sbt运行spark程序
1.新建scala-sbt 项目2.待sbt及相关依赖下载完成后,配置spark依赖spark 2.0.0后,目录下没有lib文件夹,也找不到assembly jar包,实际上该jar已经分拆成了spark安装目录下的jars文件夹下的各jar包。导入依赖如下打开idea - file - project structure - libraries,点击“+” - java,选择jar
2016-11-04 16:18:54
7033
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人