- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 好用的自定义Okhttp日志拦截器
Okhttp中自带的日志拦截器 HttpLoggingInterceptor 实在是不好用,日志太多太乱,所以想要有好看、简洁的日志打印就要靠自定义了,下面分享我参照 HttpLoggingInterceptor 写的自定义日志打印拦截器,分为java版本和kotlin版本:1、kotlin:class CustomLogInterceptor : Interceptor { override fun intercept(chain: Interceptor.Chain): Response {
2021-02-25 16:19:58
2509
2
原创 【知识点记录】Android自定义控件开发入门与实战 - 第一章:绘图基础
Color与颜色处理相关的类。常量颜色BLACK、BLUE、RED、GRAY、WHITE、YELLOW等等。构造颜色(1)带透明度的颜色:static int argb(int alpha, int red, int green, int blue){}分别传入A、R、G、B四个颜色分量,合并成一个颜色,其中四个色彩分量的取值范围均为:0~255。A:透明度,取值为0时表示完全透明,取值为255时表示完全不透明。R:红色值,取值为0时表示红色完全不可见,取值为255时表示红色完全显示..
2020-10-29 21:22:33
264
原创 对极光推送SDK在单个服务器的多端多APP推送需求的应用 - APP视角(免费版)
在使用极光推送的时候一般按照文档一步一步来就可以了,但是前段时间接到一个需求,需要在一个后台服务器对IOS、Android端的多个APP进行推送,并且有多种推送情况: 1、只推一个端的单个APP。 2、只推一个端的多个APP。 3、推两个端的单个APP。 4、推两个端的多个APP。我们都知道,对于前端的每一个APP都需要在极光后台生成一个项目,并且都有独立的APP KEY,我司的后台为.net,一开始的策略是IOS、Android将各自生成的多个项目的推送所需信息都给到后台人员,后台人员使用极光
2020-06-17 12:00:08
646
原创 在Android Studio中提升开发效率的方法记录
自定义折叠某块区域代码在开发过程中,某一块区域的代码可能不需要做修改,这样每次上下滑动查看前后代码时都要滑动这一块区域,如果将该区域代码移到最后可能又会破坏代码的结构性,此时,如果将这一块区域的所有代码进行折叠,则方便...
2020-05-21 09:37:02
321
原创 Android长图加载 - 利用Bitmap Options
class BigView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : View(context, attrs, defStyleAttr), GestureDetector.OnGestureListener, View.On...
2020-04-08 19:03:34
238
原创 Android获取公网IP地址
Android想要获取公网IP地址,连接wifi的情况下在应用层开发的角度使用系统的API是做不到的,只能直接或间接利用第三方的接口服务:1、公共接口:搜狐:http://pv.sohu.com/cityjson返回格式:var returnCitySN = {"cip": "XXX.XXX.XXX.XX", "cid": "XXX", "cname": "XX省XX市"};淘宝:...
2020-04-02 11:40:25
3502
原创 Activity当中的View是如何呈现在手机上的?含源码分析
学习任何一门开发语言的经典入门课就是“Hello World”,Android虽然是以java为基础,但是也不能仅仅是在控制栏输出"Hello World"这么简单就行了,我们总得在手机上跑起来,让界面展示"Hello World"才行,那么我们要怎样做呢?很简单,新建项目这些就不用说了,新建一个布局,添加一个android:text = "Hello World" 的TextView,通过Act...
2020-03-25 23:34:53
219
原创 RecyclerView嵌套或者ScrollView嵌套,包含EditText,EditText获取焦点时滑动异常问题解决记录
最近在做公司项目的Android适配工作,将support依赖都升级到了28.0.0,很多问题扑面而来,最让我苦恼的就是RecyclerView嵌套RecyclerView时,item中的EditText获取焦点时,横向滑动的RecyclerView会自动滚动到最前面,我依稀记得在原来遇到过,同样是升级了RecyclerView的依赖版本后出现,上一次的解决方式是把版本又降回去,但是这样治标不治本...
2020-02-20 20:49:39
2663
原创 Retrofit 2.x 系列之二 - Retrofit的源码解析
文章使用的Retrofit版本为:2.3.0在前面的文章已经介绍过了Retrofit的使用,这篇文章主要是分析Retrofit的源码。源码解析首先我们从Retrofit的初始化配置开始说起:Retrofit retrofit = new Retrofit.Builder() .client(new OkHttpClient.Builder().build()) ...
2019-11-23 14:24:10
198
原创 Retrofit 2.x 系列之一 - Retrofit的使用姿势(基础篇)
文章使用的Retrofit版本为:2.3.0Retrofit已经问世很久了,现在再来讨论Retrofit的使用不免有些晚,但是也是为了巩固自己的知识,话不多说,直接开始:Retrofit是什么?其实Retrofit是对网络请求的一种封装,实际进行网络请求的并不是它本身,Retrofit内部依赖了okhttp与okio,就像我们在使用okhttp时进行封装一样,Retrofit通过一系列初始化...
2019-11-06 17:23:52
183
原创 OkHttp源码解析(二)- Interceptors 拦截器链工作流程
OkHttp的配置、使用步骤这里就不展开描述了,网络上有很多优秀的文章,这里主要是对学习源码中理解到的知识进行概括总结。该文章根据OkHttp-3.11.0版本进行分析拦截器链意义:通过责任链模式,链中的每一个拦截器只做自己所负责的事情,将对Request的处理结果交给下一个拦截器,从最后一个拦截器开始,将返回结果依次返回给上一个拦截器,最终返回完整的Response结果。拦截器类型...
2019-10-10 15:51:20
197
原创 OkHttp源码解析(一)- Dispatcher
请求方式同步调用方式:call.execute阻塞线程异步调用方式:call.enqueue不阻塞线程回调在子线程,不能做更新UI操作Dispatcher意义:分发器,内部维护请求的状态(异步或同步),维护3个队列(ReadyAsyn:异步准备执行队列、RunningAsyn:异步执行中队列、RunningSyn:同步执行中队列),维护一个线程池(核心线程为0...
2019-10-09 15:06:56
188
原创 Git代码工具相关操作记录
1、忽略不该上传但是却上传上去的文件或文件夹(比如build文件夹):由于失误导致一些不需要上传的文件也上传上去了,这样会导致每次build一下都会让文件有改动,对于切分支做功能影响很大,所以需要将已经上传的那些文件忽略掉,下次不上传,并且将已经上传上去的文件在远程也删除掉(本地不删除),语句如下:gitbash:到工程目录下右键 git bash here,输入: (1)文件:git...
2019-07-02 17:14:44
136
原创 Android Gradle报错记录、开发笔记
1、org.gradle.api.tasks.TaskExecutionException,有时候报这个错是代码中有地方写错了,但是android studio不会定位到错误代码处。解决方法:gradlew compileDebugSource --stacktrace -info在AndroidStudio的terminal中输入上面的命令,会在terminal中输出编译日志,以此来定位具体...
2019-04-11 15:31:34
1530
原创 底部带有Indicator的RadioButton,自定义View -- UnderLineRadioBtn的实现
github项目地址:https://github.com/Jerry930326/UnderLineRadioBtn前言:该项目实现效果为RadioButton仿照TabLayout底部的Indicator下划线,可通过自定义属性和暴露的方法进行:1、文字默认/选中颜色设置;2、下划线默认/选中颜色设置;3、下划线的宽、高;4、下划线的圆角。实现该效果我先使用了layer-list方式,之后自...
2019-01-02 21:14:19
693
原创 应用内更新:使用后台接口+WebView+蒲公英实现应用内更新APP
前言:应用内更新现在有各种各样的第三方可供使用,例如:Bugly、蒲公英、友盟等等,只需要接入相关的sdk就可以很简便的实现应用内更新的功能。即使不使用第三方,跟后台配合也可以完成应用内更新的功能,前提是需要有文件服务器存储apk文件。之所以有这篇文章,是因为要满足:1、不使用第三方sdk;2、升级逻辑完全掌握在自己手中;3、没有文件服务器。文章中实现应用内升级主要是拦截WebView网页下载事件...
2018-12-16 13:15:20
1530
原创 Android中显示PDF的问题解决(安卓端使用pdf.js CDN模式)
前言:昨天接到一个需求,需要在Android端展示一个PDF文件,IOS那边很方便,只需要使用WebView即可,而安卓就不行,也查阅了部分资料,接下来我将解决问题的过程和最终采用的方案记录下来。还记得在上一家公司也做过展示PDF文件,而且文件比我现在要做的需求大得多,一般是5M以上,在上一家公司使用的是AndroidPdfViewer,但是这种方法的缺点很明显,就是增大APK的体积,需要加载....
2018-11-28 11:46:05
24488
45
原创 使用ADB命令与手机通过wifi进行调试(免root)
前提:手机系统 >= 4.0.3。每次第一次连接需使用数据线。手机与电脑必须在同一个wifi网段下。接下来说连接方法:手机与电脑连接成功后,在Android Studio的Terminal中执行:adb connect (此处填写手机的ip地址,查看方式:设置–>关于手机–>状态信息–>ip地址)如果出现错误,执行:adb tcpip 5555 ,出现
2018-10-29 17:07:23
4225
2
原创 Android转场动画Transition Animation实现记录
Transition动画效果诞生于Android 4.4,主要负责:捕捉在开始场景和结束场景中每个 View 的状态。根据视图一个场景移动到另一个场景的差异创建一个 Animator。应用场景包括:可以在activity之间跳转的时候添加动画动画共享元素之间的转换活动activity中布局元素的过渡动画我们以前实现Activity切换过程的动画的姿势是这样的:x...
2018-08-21 10:55:08
1085
原创 git pull或push时提示error setting certificate verify locations的解决办法
早上重新下载安装了Android studio 3.1.2,想体验一下新版本。结果下午需要合并代码时,不管push还是pull远程仓库都提示 “仓库地址xxxxx” error setting certificate verify locations 这句话。网上找了方法解决了。解决方法如下: 可使用git bash窗口或者AS自带的Terminal窗口输入以下命令: gi...
2018-08-08 15:46:43
652
原创 HenCoder自定义View学习 - 自定义绘制学习笔记
前言:该系列文章为记录学习扔物线(总是叫成抛物线。大佬别怪我)自定义View系列文章的学习笔记,目的首先是总结自己在学习过程中遇到的疑难点,解决了的会在文中写出,没解决的希望各位看官能指点迷津;其次是希望能让自己通过写博客的方式持之以恒。二话不说,我也反手就是一个扔物线大佬的自定义View项目传送门:HenCoder,给高级Android工程师的进阶手册...
2018-07-26 18:16:33
942
1
原创 用java代码根据html页面生成图片
最近因公司要搞活动,需要在微信公众号中用户点击按钮后返回一张即时生成的海报给用户,这张海报需要包含该用户头像、姓名、跳转活动页面的二维码,跟微信如何对接我这里就不赘述了,说一说如何生成这张海报。 首先说说我一开始的思路,最先听到这个需求的时候,心中不免有些轻视,就这点玩意不是三两下就搞定了,于是信心慢慢的回应“so easy!”。由于我是做安卓+web前端的,所以我完全按照web前端的思路来,
2017-09-27 19:14:16
32193
21
原创 JavaScript中常用的方法——(不定时更新)
解析从其他页面跳转过来时传递的参数:function parseUrl() { var url = location.href; var i = url.indexOf('?'); if (i == -1) return; var querystr = url.substr(i + 1); var arr1 = querystr.split('&'); var arr2 = new
2017-03-06 19:52:40
368
原创 Android数据库表升级(添加列),并保留原表中的数据---以后有其他升级操作将会更新该文
最近项目中需要为数据库中已存在的表添加新的字段,这也是当初设计表时的不足,前人留坑,后人遭殃。。。。并且更过分的是,发现数据库设计的严重缺陷!!有很多个库,每个库中都有所有的表,但是每个库用到的只是其中一张表。。。好吧,废话不多说!!步骤:1、首先第一步是更改数据库的 version,当检测到你当前版本比之前的高后会执行onUpgrade(SQLiteDatabase db
2017-01-05 11:34:30
5677
6
javaToImageByUrl
2017-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人