android
文章平均质量分 73
gengqiquan
求真,求源
展开
-
Retrofit自定义Converter之StringConverterFactory
之前写过一篇 浅谈Retrofit封装-让框架更加简洁易用 里面采用的是GsonConverterFactory对于retrofit的返回类型是只能有 具体对象、jsonObject、jsonArray这三种。由于服务器返回的基础数据格式不固定,所以封装请求类的时候每个请求方式都要封装两个方法,而retrofit又必须添加一种解析器,本人对代码有洁癖,抽时间写了个StringConverterFac原创 2016-09-08 17:11:16 · 30473 阅读 · 5 评论 -
从零开始实现一个网络图片加载框架
项目使用 Picasso的时候发现一些问题,列表大量快速滑动的时候容易内存过高而崩溃。快速滑动有卡顿。仔细看了下源码。发现Picasso的解析是没有做线程池限制处理的。大量解析容易导致内存来不及释放而崩溃。于是自己写了一个支持内存缓存和本地文件缓存的网络图片加载框架原创 2016-11-07 11:35:56 · 11769 阅读 · 1 评论 -
自定义View:仿ios开关按钮控件
尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/51699976, 本文出自:【gengqiquan的博客】 新项目有个提醒开关这么个功能,UI给的图当然是按ios来的,当然了,设计妹子考虑到了安卓的处境,给了两个背景图来切换,不过使用起来怎么看都不完美,很僵硬的感觉,作为一个有追求有审美的开发者,当然不能忍原创 2016-06-17 15:00:33 · 4516 阅读 · 3 评论 -
球形水波百分比控件
[转载请注明出处,尊重他人劳动成果http://blog.csdn.net/gengqiquan/article/details/51577185]本博客主要介绍的是一个球形水波的百分比控件,市面上有各种形形色色的百分比控件,我一直觉得水波是最炫的,UI给了我这个机会,然而网上搜了一大堆,不是太复杂,代码太多(反正我是调不出效果来),就是有瑕疵的,所以只好自己写了,这里开源出来,方便大家。有什么问题原创 2016-06-03 10:49:28 · 8756 阅读 · 1 评论 -
RefreshLayout让你半小时以内完成一个列表界面
尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/52757393, 本文出自:【gengqiquan的博客】之前写过一篇博文 如何写一个通用的列表控件讲到绝大多数项目总都会有各种形形色色的列表界面,但其实这些界面的区别就在于列表子项的布局不同和点击事件的响应不同而已,然而每次有个新的列表界面从适配器到Activity原创 2016-12-02 11:15:11 · 14275 阅读 · 0 评论 -
Android中webview与JS交互、互调方法
对于试水的功能,一般公司都会采用H5的方式来开发,可以用很少的资源与很短的项目工期来完成。 但许多情况下,H5页面会需要一些原生持有的一些如用户信息之类的数据,一些交互也需要调用原生的,如toast之类要保持同一个手机风格一致的交互行为。这个时候就需要能够让JS主动调用原生的方法来进行操作或者获取数据。或者是原生调用JS的方法在H5加载的时候传递一些参数。对于原生调用JS的方法我们需要实现一个We原创 2016-11-22 17:05:13 · 11141 阅读 · 6 评论 -
浅谈Retrofit封装-让框架更加简洁易用
尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/52329259, 本文出自:【gengqiquan的博客】不知不觉在在这家公司快三个月了,刚接手项目的时候是真的被里面的代码恶心到了,网络请求用的原生的httpURLconnection。这本来什么,关键是根本就没有进行任何封装。activity里面充斥着大量的han原创 2016-08-26 15:55:05 · 65032 阅读 · 14 评论 -
LoginUtil一句代码实现各种登录验证前置操作
一句代码进行登录 LoginUtil.doActionNeedLogin(this, () -> { //do something need login });完整的示例项目地址https://github.com/gengqiquan/LoginUtil使用方式doActionNeedLogin检查是否登录登录直接执行操作,未登录跳转登录,登录后继续执行操作原创 2016-12-21 11:21:10 · 8129 阅读 · 1 评论 -
ScrollView嵌套GridView、ListView的那些事儿
尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/53782194, 本文出自:【gengqiquan的博客】在android开发中,经常有一些UI需要进行固定style的动态布局,然而由于现在的UI都喜欢把一个界面拉的很长,所以我们很多情况下需要使用ScrollView来嵌套列表控件来实现UI。这样就导致了很多不顺心原创 2017-02-13 10:45:49 · 3867 阅读 · 2 评论 -
android生成分享长图并且添加全图水印
长图一般是ScrollView和ListView。我们需要取得这两个控件的完整显示的图片。原理很简单,搞一张和控件长宽一致的画布(就是创建一个高宽相等的bitmap)。然后调用控件的draw方法把自己画到画布上去。原创 2017-03-25 17:05:17 · 11289 阅读 · 10 评论 -
Java 注解那些事儿
尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/53782194, 本文出自:【gengqiquan的博客】今日无事,应狒狒之邀,写一篇详细的关于注解的文章。注解一般有如下几种作用生成文档,这是大家最常见的也是Java最早提供的注解功能。比如看源码的时候方法注释上面的 @see @param @return 等等;原创 2017-04-15 14:41:16 · 2901 阅读 · 2 评论 -
Support Annotations注解介绍以及自定义注解代替枚举
Android支持Java默认的那些注解,同时通过Support Annotations也额外提供了很多注解,了解并熟练使用这些注解能够让你的代码更加严谨,结构更加清晰、架构更易维护原创 2017-04-15 17:33:06 · 5522 阅读 · 0 评论 -
自定义注解并进行动态解析
尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/70230597, 本文出自:【gengqiquan的博客】前两篇博客我们唠了Java支持基本的注解以及Android Support Annotations库提供的静态检查类型的注解 今天我们来唠唠怎么自定义动态注解,并且实现一个控件自动绑定功能(老版本butter原创 2017-04-18 17:22:43 · 5374 阅读 · 0 评论 -
告别onActivityResult ,用代理实现Rx方式获取startActivityForResult结果
要想完全告别onActivityResult(),有两种方案1、使用进程注入的方式hook系统的activity数据发送,这种方案比较复杂,用到ndk知识,需要在源码下编译应用,不适合大部分人。2、利用代理进行跳转事件转发代理和 onActivityResult()事件代理接收后再通知委托者。原创 2017-07-04 15:57:06 · 37244 阅读 · 7 评论 -
android仿新版UC首页,上滑隐藏顶部轮播图,支持单个栏目下拉刷新,左右滑动切换
本博客由gengqiquan原创,转载请注明出处http://blog.csdn.net/gengqiquan/article/details/50542334尊重他人的技术劳动成果,谢谢 UI妹子是个喜欢看各种软件的妹子,这不,最近看上了UC的首页,于是把我们的应用也改成了这样的风格,本着不重复造轮子的原则,网上百度了一大堆,全特么没有用。好吧,不重复造轮子不代表自己不去制造轮子,现在我们来原创 2016-01-19 14:31:25 · 15535 阅读 · 13 评论 -
Hook OKhttp3模拟服务端响应请求返回mock数据
一个hook 流行网络请求库OKhttp3的一种模拟服务端响应请求返回数据的库,方便只有文档而没有发布测试服务器的时候进行开发和调试原创 2017-09-28 09:43:32 · 6116 阅读 · 2 评论 -
从零开始实现图片加载特效之渐变加载、圆角图片
有时候图片直接显示过于生硬,这个时候我们就需要给加载图片的过程加上特效,比如渐变显示。有时候我们需要图片加圆角原创 2016-11-14 18:04:15 · 9545 阅读 · 0 评论 -
从零开始实现图片加载特效之黑白照片、倒影图片、图片蒙版
然后上篇博客[ 从零开始实现一个网络图片加载框架:加载特效(一)](http://blog.csdn.net/gengqiquan/article/details/53161853)分别介绍渐变加载和圆角图片了两种加载特效的实现方式,今天我们来一起实现其他三种蒙版特效,分别为倒影特效,灰度照片,遮罩特效原创 2016-11-15 10:27:04 · 11917 阅读 · 0 评论 -
RxJava实战:变换操作符map的使用姿势及技巧
map变换操作符的作用是把每一个(T类型的)Observable通过一些列代码变换成另外一种(R类型的)Observable也就是图上的把圆圈变成三角。Observable就是流,把他当做一种结构,这种结构具有类型, 这种类型可以应用rx操作。然后实际进行RX操作的时候操作的其实是对应的类型的对象。原创 2016-10-21 11:08:47 · 3957 阅读 · 0 评论 -
一个简单的自定义Dialog
项目中会有各种各样的dialog弹窗,每个都拿布局去写很烦,以前写过一个多配置的dialog框架,没带到新公司,没事的时候写了一个简洁版的。 支持有无标题,支持替换内容View。支持只显示确定按钮,支持修改按钮文字颜色。支持普通的点击事件,支持背景调暗,总之是一些基本的dialog功能原创 2016-09-21 15:28:08 · 5830 阅读 · 1 评论 -
android 列表倒计时流畅的完美实现
本博客由gengqiquan原创,转载请注明出处http://blog.csdn.net/gengqiquan/article/details/50541007,尊重他人的技术劳动成果,谢谢最近宣传自己新写的一个APP的时候,好多开发朋友都在询问我首页的列表倒计时如何实现的,看起来很流畅啊!可见大家被倒计时坑的还是比较多的。 本篇博客的方案是参考了网上众多方案后,取精华精简的一套方案,废话止步原创 2016-01-19 10:50:36 · 16181 阅读 · 8 评论 -
自定义view基础:TypedArray(属性样式)
就控件的布局生成方式而言,相对于Java代码中new的方式,大多数人更喜欢XML布局文件中直接写,这也是Android推荐的一种方式,将view的样式与具体逻辑分离。一些常用系统控件的属性样式赋值相信大家已经很熟悉了,但有时候系统控件不能满足我们的需求的时候就需要开发者来自己定义符合的控件了,这个时候怎么让自己写的控件可以像系统控件一样在XML布局中设置呢?本篇博客就来为大家介绍TypedArray原创 2016-10-13 15:31:28 · 3369 阅读 · 0 评论 -
Retrofit源码解析:RxJavaCallAdapterFactory
上篇博客Retrofit源码解析我们讲到了retrofit所采用的注解方法会交由ServiceMethod的callAdapter 去进行层层解析,然后交由OkHttpCall 去执行具体的请求 并且这个callAdapter 是可以设置的使用rxjava的用户一般会设置RxJavaCallAdapterFactory.create())而如果用户如果不设置的话,retrofit会默认创建一个。创建原创 2016-10-11 10:25:30 · 9974 阅读 · 0 评论 -
写给同事的EventBus使用指南(二)
写给同事的EventBus使用指南(一) 里面介绍了EventBus的简单用法。这篇我们讲EventBus的线程切换和响应优先级设置以及粘性事件。 EventBus的强大当然不仅仅是替代下广播和 startActivityForResult, EventBus还提供了线程切换以及注册方法的相应顺序设置 先来看线程切换,怎么设置? 如上图,通过在注解里面指定threadMode,我们可以看到有四原创 2016-08-15 11:50:27 · 8752 阅读 · 0 评论 -
okhttp之自定义Interceptor:缓存拦截器
如何在服务端不支持的情况下为retrofit添加缓存,如何在服务端不支持的情况下为okhttp添加缓存,既然改变不了服务端,就改变自己吧原创 2016-08-13 17:41:49 · 22108 阅读 · 16 评论 -
okhttp之自定义Interceptor:请求失败切换IP重试拦截器
经过一段时间的挣扎,终于把新公司项目的网络框架换成了retrofit,由于项目是有失败重试和重定向需求的,所以需要在新的网络框架上增加这个功能,大家都知道retrofit的网络请求部分是基于okhttp的。这个时候可爱的Interceptor设计就提现出他的好处了,不需要修改其他的代码,直接增加一个拦截器就OK了实现一个拦截器继承Interceptorpublic class RetryAndCha原创 2016-08-13 17:12:51 · 14118 阅读 · 6 评论 -
打造RecyclerView的通用适配器
打造RecyclerView的通用适配器 SDK的5.0版本出来已经N久了,可以说是已经经过许多人的检验了,里面的新控件不能说是非常完美,但也是非常好用了,其中最让我喜爱的就是RecyclerView了,可以完美替代ListView和GridView(除了添加headerview和footview了,网上有许多解决方式。这个下面会以一种简单的方式顺带解决,肯定为大家省心),而且可以代码动态切换原创 2016-02-29 10:29:02 · 3877 阅读 · 0 评论 -
如何写一个通用的列表控件
每次有个新的列表界面从适配器到Activity都需要写很多代码。作为一个懒人, 一直想把这些重复的工作给去掉,要做到这点,我们的控件需要有以下的功能1支持下拉刷新2支持适配器抽象3支持切换没有数据界面图片和文字(一般都会有个图片和提示文字)4支持切换加载失败界面,且点击自动重试(有的项目是点击按钮,有的是直接点击失败界面)5支持加载更多原创 2016-10-08 15:59:08 · 5233 阅读 · 0 评论 -
Retrofit源码解析
既然是好的框架,我们当然要拿来用,但同时也应该去了解框架的优点和好的设计思想。本篇博客就带大家来一起走进Retrofit源码的世界,来看一看当前最好的网络框架的内心灵魂是如何美妙吧。Retrofit 独树一帜的把请求采用了接口,方法和注解参数(parameter annotations)来声明式定义一个请求应该如何被创建的方式。 如果你已经使用过它了,你应该记得他的实例创建是这样的原创 2016-10-10 15:54:26 · 3253 阅读 · 0 评论 -
Android录制手机屏幕视频生成GIF图片教程
无图无真相,在我们日常的网络交流中往往需要给交流对象提供直观的显示,而视频是一个很好的方式,但是视频需要播放器,还需要当做文件进行对点传输,并不是很方便。想CSDN这样的博客网站也并不支持在博客里放视频这种方式,原创 2016-11-08 10:25:16 · 5625 阅读 · 2 评论 -
写给同事的EventBus使用指南(一)
EventBus好处不用多说,直接告诉大家怎么使用好了原创 2016-08-15 10:31:11 · 18103 阅读 · 2 评论 -
Androidstudio使用lambda表达式教程
Java8出来有段时间了,一直对lambda蠢蠢欲动。但是由于Android缺少SDK的支持,一直不能如愿使用。如今SDK24版本出来了。添加了对Java8的支持,终于可以使用了。特此给大家分享下接入Java教程。教程基于Androidstudio。首先要做的是更新Android的SDK至24。然后下载JDK1.8,安装,配置好环境变量。 更改项目中的jdk引用,如下图 在project的b原创 2016-08-26 14:37:06 · 7394 阅读 · 0 评论 -
一句代码实现登录判断操作
绝大部分app中都会有登录功能,许多操作在进行前我们需要去判断用户是否登录,已登录的情况下才允许继续去执行操作。一般有以下两种情况1.判断是否登录。已登录直接执行操作。没有登录跳转登录界面,用户操作后返回之前界面,此时需要再次进行判断是否已经完成了登录(用户可能直接直接返回或者取消登录操作),如果登录成功了就执行操作,没有就什么都不做 2。判断是否登录,已登录直接执行操作,没有登录跳转登录界面,用原创 2016-07-11 16:12:36 · 12592 阅读 · 2 评论 -
用代理获取startActivityForResult结果
尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/74331845, 本文出自:【gengqiquan的博客】之前RxActivityResult 这个库和RX绑定太深,好多人其实并不喜欢RX的方式,而且引入RX也容易导致开发者乱用,如果不能很好的进行内存管理的话会导致内存泄露。考虑到界面回传的业务场景中对值的ao...原创 2018-11-14 10:31:47 · 909 阅读 · 0 评论