- 博客(73)
- 资源 (10)
- 收藏
- 关注
原创 【重磅】QUploadPlugin,让上传变得简单
QUploadPluginQUploadPlugin 是一个gradle插件,适用于所有以gradle管理的项目中,如Android项目、Java web项目等。QUploadPlugin包含的功能上传指定文件到七牛云,文件可以为任意格式,如图片、json文件、apk文件、war文件、jar文件等上传指定文件到蒲公英,由于蒲公英是为移动端的apk或ipa做分发的,貌似仅支持ap...
2018-06-30 21:28:12
866
原创 AndroidStudio3.0更新问题汇总
说是汇总,其实是我更新时遇到的几个问题的解决方案,现提供出来,方便大家修改。AndroidStudio3.0是这两天刚推出的,这么着急更新,主要是想体验一把官方支持的Java8新特性。 首先第一步肯定是点击更新按钮,去升级新版Android Studio,这并不难,等它下载并安装更新即可,没啥好说的。但AndroidStudio重新启动后,以前的项目会报各种错,这里列出的我遇到的一些问题和解决方
2017-10-28 00:02:51
1029
原创 再说Runnable、Callable、Future、线程池
Runnable接口Runnable接口是关于线程的开发中使用最多的接口,在Handler中,我们可以post一个Runnable任务;我们经常使用的Thread也是Runnable接口的实现类。 Runnable接口的run方法无返回值,也无异常抛出,也就是说我们在run方法中的任务一旦执行,我们无法获知任务是否执行完毕以及执行的结果。源码public interface Runnable {
2017-09-27 16:26:05
1457
原创 自定义View系列(8)--越界回弹ScrollView
难度中等效果说明越界回弹的效果不用多说了吧,大家应该都知道, 不知道的看下方效果图。效果图特性说明支持阻尼系数支持多指触控支持上拉回弹、下拉回弹支持设置开启/关闭回弹:ENABLED_ALL、ENABLED_TOP、ENABLED_BOTTOM 、ENABLED_NONE不影响原有手势的分发处理支持设置最大滑动距离支持设置插值器实现原理整体采用offsetTopAndBottom()
2017-09-24 18:23:32
2562
原创 DataBinding使用教程(四):BaseObservable与双向绑定
引言这篇文章主要讲两个知识点:双向绑定:主要是把上一篇文章中的一些注解通过具体实例再详细说一下,通过这些实例,尽量把双向绑定说的清楚一些。BaseObservable:包括与BaseObservable相关的东西。比如:@Bindable注解,响应式包装类等;什么叫双向绑定举个例子简单说一下:在TextView中,我们通过dataBinding把实体中的数据放到TextView中展示,这是从实
2017-08-25 20:55:03
12009
4
原创 DataBinding使用教程(三):各个注解详解
文章有点长,请做好心理准备有哪些注解@Bindable@BindingAdapter@BindingBuildInfo@BindingConversion@BindingMethod@BindingMethods@InverseBindingAdapter@InverseBindingMethod@InverseBindingMethods@InverseMetho...
2017-07-19 14:40:18
10021
8
原创 自定义view系列(7)--SwitchView
需求描述草图如下: 公司产品的新版本中要实现一个效果,需求如下: - 定义4种状态:未知-休息-上班-下班 - 要锁定‘未知’状态,锁定之后,未知状态不可点击 - 用户可以点击除了锁定状态的之外的任意状态,滑块自动滑动到指定状态并触发回调去请求接口,如果请求失败,则控制滑块再滑动到之前的位置。 - 用户可以滑动滑块到任意位置,如果滑动到锁定状态,要再次滑动重置到之前的状态。如果滑动到其
2017-07-11 11:02:35
495
原创 DataBinding使用教程(二):xml标签详解
到底有哪些可用的DataBinding标签DataBinding总共有如下几个标签可以使用,一些标签下还有一些属性可以更具体的控制这些标签: - layout标签 - data标签:class属性 - variable标签:type属性、name属性 - import标签:type属性、alias属性这些标签以及属性的定义和使用都可以在compilerCommon这个jar包中的androi
2017-07-04 17:48:07
5373
1
原创 DataBinding使用教程(一):配置与基本使用
配置DataBinding开启DataBinding功能很简单,只需要在APP的gradle中按如下方式配置即可:android {apply plugin: 'com.android.application'android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { a
2017-06-28 16:22:36
9441
3
原创 自定义View系列(6)--RatingBarView
写在前面这个控件是一个组合控件,继承于LinearLayout,实现的效果类似于Android中的RatingBar,但是比RatingBar更加灵活,使用起来也更加方便.现在已经上传到github,地址:RatingBarView,同时也上传到jCenter,在Android Studio中使用RatingBarView只需要以如下方式引入即可: compile 'com.qiangxi.ra
2017-06-11 14:53:14
781
转载 Java synchronized详解
转载自Gang.Wang. 原文链接:java synchronized详解这篇文章能学到什么synchronized的作用synchronized的各种用法synchronized(object)到底锁住的是什么(重要)synchronized优缺点synchronized与sleep()的关系synchronized作用:synchronized是Java语言的关键字,当它用来修饰
2017-04-11 18:16:39
479
原创 Android沉浸式状态栏
Android 状态栏操作View类中设置UI元素效果的各个常量说明以下各个常量全部都是用来作为setSystemUiVisibility(int)方法的参数使用的.View.SYSTEM_UI_FLAG_VISIBLE(在API 14时被添加进来,单独设置有效)默认值,请求状态栏可见View.SYSTEM_UI_FLAG_LOW_PROFILE(在API 14时被添加进来,单独设置有效)请求用户界
2017-04-05 14:50:33
1321
原创 Retrofit各个注解的含义及作用
写在前面本篇文章基于retrofit-2.1进行分析.1. 各个注解的含义及使用1.1 Body注解:作用于方法的参数使用该注解定义的参数不可为null当你发送一个post或put请求,但是又不想作为请求参数或表单的方式发送请求时,使用该注解定义的参数可以直接传入一个实体类,retrofit会通过convert把该实体序列化并将序列化后的结果直接作为请求体发送出去.示例: //实体
2016-12-31 23:57:56
33655
5
原创 使用Record Espresso Test功能自动生成测试代码
上一篇文章介绍了如何使用Espresso框架编写自动化测试代码,算是一篇Espresso的入门文章吧,如果还不知道Espresso如何编写测试代码的,建议看一下上一篇文章,毕竟这篇文章是以上一篇文章为基础的. 传送门:Android自动化测试–Espresso框架使用 在上一篇文章文章的结尾我们说到,如果项目一旦很大,针对每个功能模块全部手动编写测试代码的话,非常耗时耗力,所以如果有个能自动生成
2016-10-30 00:06:14
4368
1
原创 Android自动化测试--Espresso框架使用
且说正文之前,还是先说说Android单元测试的意义或者说为什么我们要进行Android的单元测试?为什么要进行单元测试?单元测试可以帮助我们程序员将bug消灭在萌芽期,为后续的集成测试减少时间.大家可以看一下这篇文章,可能会说服你:为什么要进行烦人的单元测试? 如果那篇文章还不能说服你,那我只能使用杀手锏了~~ 大家可以去各大招聘网站上看看,大部分公司都要求开发人员会编写测试用例或使用框架或工
2016-10-28 11:23:49
18385
5
原创 Android检查更新库CheckUpdateLibrary使用教程二
上一篇文章介绍了CheckUpdateLibrary的基本使用,还没看的请戳这个链接look,look:(http://blog.csdn.net/qiang_xi/article/details/52823389) 当时是以1.0.2版本的Library为基础进行介绍的,中间有说到CheckUpdateLibrary虽然可以自定义实体类,但是前提必须得有newAppVersionCode字段,所
2016-10-19 10:48:40
2127
原创 Android检查更新库CheckUpdateLibrary使用教程
检查更新并下载更新可以说是一个app必备的功能了.既然是必备功能,往往需要考虑很多东西,如下:1,更新方式:一个软件有更新了,如果是上线了新的功能或修复了某些bug,或者是服务端的接口变了等,需要强制用户更新软件,不然就退出应用,而如果只是进行性能的优化或者界面变化但是数据不变的更新,往往不需要强制更新,所以这就产生两种更新需求:强制更新与非强制更新.2,后台下载:强制更新可能
2016-10-15 18:18:34
6724
8
原创 Error:Could not find com.github.dcendents:android-maven-plugin:1.3解决方式
今天把一个库上传到jcenter时,按照网上的教程一步一步操作,中间遇到了一些错误,都在网上找到了答案,但是在最后一步时,遇到了以下这个错误:Error:Could not find com.github.dcendents:android-maven-plugin:1.3.Searched in the following locations:file:/F:/Android_Studi
2016-10-10 14:58:51
13539
12
原创 自定义view系列(5)--99.99%实现QQ侧滑删除效果
首先声明本文是基于GitHub上"baoyongzhang"的SwipeMenuListView修改而来,该项目地址:https://github.com/baoyongzhang/SwipeMenuListView可以说这个侧滑删除效果是我见过效果最好且比较灵活的项目,没有之一!!!但是在使用它之前需要给大家提两点注意事项:1,该项目支持Gradle dependence,但是目
2016-09-07 16:04:30
4812
6
原创 android design包下的Snackbar第一个参数使用技巧
能看到这篇文章的,我想大部分都已经对Snackbar的基本用法很熟悉了.对于Snackbar.make()方法中的第一个参数View ,该view必须能找到父布局才能用,也就是说,如果我们使用new View(this)的方法来实例化一个view放进去,虽然类型一样,但是运行时会直接报错,因为这个view找不到父view.在一般的使用过程中下,我们都是在view的onClick事件中弹出S
2016-09-06 15:17:43
6583
7
原创 自定义view系列(4)--判断滑动方向的ListView
使用ListView时.现在一些流行的应用会根据ListView实时的滑动方向来显示或隐藏一些布局,比如知乎,掘金等应用.判断ListView的滑动方向其实不难,只需要在它的OnScrollListener中进行相应的操作即可,网上也有很多教程,但是这样做很麻烦,因为有些ListView的Item很高,当ListView的多次滑动距离没有超过一个Item的高度时,判断是向上滑动还是向下滑动会有
2016-09-04 12:17:06
2298
转载 ListView与SwipeRefreshLayout滑动冲突解决方式
一, ListView与SwipeRefreshLayout滑动冲突解决方式原文出处:http://blog.csdn.net/lijinhua7602/article/details/41114397方法如下:listView.setOnScrollListener(new OnScrollListener() {@Overridepublic void onScr
2016-09-02 18:50:00
2381
原创 类似支付宝的view点击效果透明度变化
先上两个截图,如下:支付宝: QQ:如上两图用红色框框住的部分,当手纸按压时,图片透明度发生变化,但是背景颜色没有变化,这和我们平常所用的控件按压效果不太一样,但是要做到这种效果也不难,我们可以让美工做两套图片出来,然后设置正常状态和按压状态时的图片即可, 但是这样会造成应用的包体积很大,毕竟有很多地方都需要这种效果,不是首选之法。第二种方式是利用ImageView
2016-08-29 16:10:29
1917
原创 自定义view系列(3)--给自定义View添加点击事件
这几天一直在看《android开发艺术探索》和《android群英传》中关于自定义view的章节,结合着网上大神的一些心得分享,感觉自定义view这一块受益匪浅,这里做个心得笔记,主要记录一下view与用户交互的一些知识。自定义view与用户交互用的最多的就是单击事件,其次的还有双击事件、长按事件、滑动事件等,所以就需要做好view的事件监听。如果我们继承了View,也绘制好了控件,但是不
2016-08-24 16:38:23
21265
4
原创 自定义view系列(2)--秒针旋转效果
最近项目需求变更,用户下单完成之后,需要以距离由近到远的方式逐步查找可接单的车辆,而对用户端的要求就是要让用户知道系统在为他派单,并且还得让用户知道此时此刻系统正在为他查询多少公里内的车辆.所以这个自定义view就诞生了.其实网上已经有前人造好的轮子,但是有一点不满足需求就是需要让用户知道此时此刻正在什么范围内派单,所以还是得自己画一个满足需求的.一,国际惯例,上效果图:二,该
2016-08-20 17:12:44
994
原创 自定义View系列(1)--仿支付宝中物流状态效果
国际惯例,先上支付宝中的原效果图: 再来一张自定义view的效果图看到两个效果图的对比,可能会有人问为啥物流状态被选中时的背景没有?其实是有的,只不过我把代码注释掉了,原因就是背景太难
2016-08-18 11:27:27
1770
原创 新的起点!!!新的目标!!!
今天在看一些大神的博客时,看到他们分享的一些生活记录,比如求职面试经历啊,一年的总结啊,学习的历程啊等等,从他们的这些文章中,我看到了他们在时刻的进步着,这也是我写这篇博客的原因,我要给我也想给自己未来一年内重新规划一个新的方案.没有人一开始就能把一件事做的尽如人意,即便一直做同一件事也很难做到完美无缺,我们只有尽量的去做好,让更多的人满意,同样,个人愚见,学习Android是一个循序渐进的过
2016-06-26 18:29:52
872
原创 Android使用EventBus框架优化代码逻辑
又叫事件总线(或消息总线),网上关于该框架的使用说明很多很多,我也是照着网上的一些教程学会使用的,在使用的过程中,突然发现以前很想实现但没能实现的代码逻辑终于可以实现了,说代码逻辑之前还是先说下EventBus的基本使用方法吧. 1,EventBus的使用方法: 如果是Android Studio 的开发者,直接在dependence里搜索EventBus,然后添加依赖即可,网上教程有很
2016-06-07 10:45:44
963
原创 Android Studio如何取消与SVN的关联
在使用SVN过程中可能有时因为一些原因,不想再使用SVN了,我们想取消与SVN的关联,让android项目恢复到原始状态,不想有哪些花花绿绿的颜色了,怎么办呢,操作起来很简单把Android Studio切换到Project模式,有个.idea文件夹,在该文件夹下找到vcs.xml文件,打开该文件,把里面的内容替换成如下代码即可. 原理也很简单,如果之前关联了S
2016-03-03 21:02:49
21264
10
原创 类似QQ的窗口抖动效果
其实很简单,只需要一个动画即可 /** * 晃动动画 * @param counts 规定时间内晃动多少下 * @return */ public static Animation shakeAnimation(int counts){ Animation translateAnimation = new Translate
2016-02-23 14:48:48
1134
原创 有了Font Awesome,再也不担心没图标用了----Font Awesome字体图标在android中的使用
介绍Font Awesome如何在android中使用之前,先贴出一个链接:如何在安卓app中使用FontAwesome图标这篇文章是泡网上的一篇译文,可以先看看这篇,了解个大概我这里把泡网上的关于android使用Font Awesome的具体方法详细说一下:直奔主题吧,android中使用Font Awesome其实很简单,我们知道比如一个TextView或者Butto
2016-02-20 17:44:53
3053
原创 利用Xutils框架进行断点续传下载
前面有两篇博文主要介绍了如何利用volley获取所有cookie信息和自定义一个request,地址如下:Volley 添加Cookie和获取服务器返回的一条或多条Cookie继承Volley的Request,创造自己的Request,实现cookie回调和指定返回数据类型回调我们都知道volley是google官方推出的一款网络请求框架,它适合高并发但是数据量不大的网络请
2016-02-16 17:06:46
9235
8
原创 eclipse自定义右键菜单选项
用eclipse开发android时,集成好环境之后,发现右键没有新建android项目选项,也没有新建布局文件选项等,反正关于android的选项都没有,如果用到的话还得从"other"里去找,很麻烦,如果能把这些功能集成到右键菜单就好了....也很简单以目前最新版的eclipse为例,这里为4.5.1版本,Windows->Perspective->Customize Pers
2016-02-16 10:16:59
13127
2
原创 针对不同分辨率设置的布局没有效果的解决办法
屏幕适配时,当采用xml匹配方式,发现即使针对不同分辨率做了不同的布局,对应分辨率的手机的显示依然没有任何的效果,查找相关资料后发现必须要在androidmainfest中进行如下代码的配置:android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:x
2016-02-13 21:17:04
1555
原创 继承Volley的Request<T>,创造自己的Request,实现cookie回调和指定返回数据类型回调
本文也是承接上一篇文章,上一篇文章讲的是如何用volley获取服务器返回的所有cookie信息,地址如下http://blog.csdn.net/qiang_xi/article/details/50608653上一篇中我们采用修改源码的方式让volley可以拿到所有的cookie信息,虽然拿到了所有的cookie信息,但是我们用的时候是重写parseNetWorkResponse方法,在
2016-01-30 21:27:25
1263
原创 Volley 添加Cookie和获取服务器返回的一条或多条Cookie
之前项目里请求网络的代码都是采用原生的语句,如HttpURLConnection或者HttpClient,这种方式请求灵活度高,但是访问网络的速度慢,特别是在网络不好的情况下情况更糟,而Volley是google官方极力推崇的一款网络请求框架,具体好处自不用多说.且因为它的继承性,在灵活度上也比原生的请求代码好一些,我们可以继承父类Request来实现我们自己的xxxRequest.当采用
2016-01-29 20:48:25
4704
4
原创 android minSdkVersion maxSdkVersion targetSdkVersion build target
分析一下minSdkVersion maxSdkVersion targetSdkVersion build target,大部分是我自己的理解,一部分是网上摘抄minSdkVersion:软件最低可运行在哪个版本的手机上maxSdkVersion:软件最高可运行在哪个版本的手机上,android 2.0.1以后该属性已无用targetSdkVersion:(1)软件最
2016-01-22 11:17:36
1176
原创 超详细图文讲解android studio导入第三方类库的方法
android studio如何导入jar包和.so文件在我之前的博客中都已经详细说明过,这是链接:android studio如何导入jar包:http://blog.csdn.net/qiang_xi/article/details/47282217 第6点有说明android studio如何导入.so文件:http://blog.csdn.net/qiang_xi/articl
2015-12-06 12:08:31
11451
3
原创 androidd时光轴效果实现
一个好的应用肯定有一个好看的界面,给自己界面增加各种各样的特效或者独树一帜的外观,即使功能差不多,但你的应用肯定更受欢迎,给应用加特效一般会写很多xml文件作为控件的背景,这种方式很容易实现,也很简单,也是大多数开发人员的首选,不过我认为更加酷炫的界面还是自己定义的比较好,比如继承view或者viewGroup,自己创造一个独树一帜的控件或者界面效果出来,比如像QQ的侧滑菜单效果等,而自定义控
2015-11-30 18:07:23
2218
dataBindingGenerator插件
2017-08-25
99.99%实现QQ侧滑删除效果
2016-09-07
volley的Library文件
2016-01-29
listView多项删除
2015-11-23
listView多项删除demo
2015-11-23
利用ViewPager实现app启动画面
2015-10-15
极光推送demo(绝对不是官方的demo)
2015-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人