自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

金克丝的美好初衷

纸上得来终觉浅,绝知此事要躬行。

  • 博客(60)
  • 资源 (11)
  • 收藏
  • 关注

原创 android sdk 源码解析

android sdk 源码解析 旨在帮助Android开发者更好的学习Android!我们只是一群普通的程序员,但是,我们热爱分享,想热热闹闹的玩点有意义的事!如果你也想陪我们一起愉快的玩耍,欢迎加入我们!Issues认领分析文章!

2016-05-14 13:44:49 452

原创 android开发各种相关干货

Android知识库 csdn上面的知识库,包括开发工具、基础知识、软件架构等等各方各面的知识,非常全面。 http://lib.csdn.net/base/15Android Dev Tools官网 www.androiddevtools.cn 收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材

2015-12-01 15:51:53 2288

原创 OkHttp源码系列 之 RealInterceptorChain

源码出处我们知道, OkHttp 中网络请求相关的逻辑都在 RealCall 类中,而 RealCall 类中最核心的方法是 getResponseWithInterceptorChain(),如下:final class RealCall implements Call { ...... Response getResponseWithIntercepto...

2019-02-27 16:35:18 998

原创 OkHttp 源码系列 之 ArrayDeque - 双端队列

源码出处public final class Dispatcher { /** Ready async calls in the order they'll be run. */ private final Deque<AsyncCall> readyAsyncCalls = new ArrayDeque<>(); /** Running asynchro...

2019-02-27 16:34:21 1049 1

原创 事件分发和NestedScrolling(二)

前言NestedScrolling是Android 5.0上一套全新的嵌套滑动机制,5.0及以上版本的所有View已经默认 支持了这套机制,老的版本可以通过Support包进行向前兼容。它涉及的接口和类有下面四个:主要接口:NestedScrollingChild、NestedScrollingParent帮助类:NestedScrollingChildHelper、NestedScrolli

2017-12-22 14:57:45 1166 3

原创 事件分发和NestedScrolling(一)

前言关于事件分发好像都已经说的很多了,网上也有很多资料,本来这篇文章主要是讲NestedScrolling(嵌套滚动),但是因为它和事件分发的相关性较大,所以还是讲一下。事件分发的三个核心方法如下:1、dispatchTouchEvent():分发事件2、onInterceptTouchEvent():决定父View是否拦截该事件不交由子View处理3、onTouchEvent():消费事件这三

2017-12-22 00:17:15 629

原创 EventBus源码分析

前言这可能是东半球来的最晚的EventBus分析文章了。有多久没有写博客了?三个月?半年?想不清了,每天忙着做业务很少有自己的时间来总结和记录,感觉自己也变懒了,以前每天工作效率还是挺高的,现在已经不行了。这两天空闲了些,但是学习不能停止呀,想想很多系统和三方库的源码都没有好好阅读和总结过,网上有很多分析的文章,但毕竟都别人写的。纸上得来终觉浅,绝知此事要躬行。看别人写的虽然也看得懂但是也很容易忘,

2017-05-11 16:52:58 499

原创 简单但是强大的阻尼滚动ViewGroup

1、这是一个可以给你的UI添加阻尼效果的自定义ViewGroup,支持包括但不限于以下控件:普通ViewViewPagerScrollViewHorizontalScrollViewRecyclerView等等2、可以自定义阻力大小以及阻尼方向

2017-01-09 18:33:55 3596 2

原创 自定义ViewGroup实现侧滑删除菜单

最近的这段时间真是忙到飞起,各种需求各种bug,心好累。这个侧滑删除的自定义ViewGroup本来在11月份的时候就开始写的,中间一直放在那没动,这两天正好空下来,赶紧抽时间把这个项目写完了,事情也算是有个了结,不然总放在心里搁着,闷得慌,而且今天刚好是2017年1月5号,发工资的日子,而且元旦也刚过不久,好事成双,就当是送给自己的礼物了。

2017-01-05 15:50:53 1100 1

原创 仿微博富文本编辑框

没图我说个毛?https://github.com/aishang5wpj/RichEditText/raw/master/screenshot/screenshot.gif’ height=’480px’/>首先要说明的是:不管是话题、at还是poi,都应该被看成一个最小子项,即不可在中间插入文字,也不可对话题、at或者poi中的任何文字进行单独的修改或者删除。结合以上,该富文本编辑框的主要功能如

2016-11-07 14:17:48 4224

原创 Android源码阅读笔记(1)----Fragment

前言今天是加入小红书的第一个月,工作已经慢慢步入正轨了,除了工作时间稍微有点长以外还是挺喜欢这里的,不过作为即使下了班也没人约的单身狗,想想也觉得无所谓了。这算是自我安慰吗,哈哈哈~老大说以后Android Team一周内要分享两次知识,让我们自己下去准备,每个人都要分享自己的知识。我觉得这点蛮好的,每个人做开发都有自己的经验和技巧,虽然现在很多东西网上都有,不过如果能面对面的分享出来,互相交流学习

2016-08-12 22:41:50 1436

原创 Fragment重叠问题

使用replace来添加Fragment,replace的作用相当于是remove() + add() 组合后的作用。即使用replace会先移除掉当前id为content上的Fragment,这个被移除掉的Fragment就会被销毁掉(如果当前事务),然后通过add再把新的Fragment添加到View上。 (1)使用replace方式,相当于在对应id为content的FrameLayout

2016-06-28 09:58:27 1103

原创 泛型模式下的Retrofit + rxJava实现三级缓存

Retrofit + rxJava实现三级缓存前言平时加载数据的时候,大多都用到缓存,即取数据的顺序为:内存->硬盘->网络。rxJava实现三级缓存的需求主要用到两个操作符:concat和first.concatconcat同名的方法有很多,由于是实现三级缓存,所以这里使用的是3个参数的concat。先来看官方说明: Returns an Observable that emits the i

2016-06-16 16:27:46 4801 2

转载 WeakReference 在android中的应用

首先我们来看一段代码public class AutoActivity extends Activity { Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { }; }; @Override protected void

2016-06-06 11:11:13 487

原创 RxJava入门学习笔记

前言现在rx系列似乎是火的不行了,一打开群就是各种rxJava、rxAndroid。最近正恶补各种新技术来充实自己,所以前些天写完两篇介绍JuheNews项目的文章之后,马上又开始加入了学习rxJava的阵营当中。欢迎来到rxJava刚开始看rxJava的系列文章的时候,一万头草泥马在心里来回奔腾:这tm跟屎一样的东西写的都是个啥?现在开始找到了一点感觉了。网上很多大神都把rxJava看成设计模式中

2016-06-03 17:35:01 5035 2

原创 JuheNews系列之二 · ToolBar+AppBarLayout+CoordinatorLayout+CollapsingToolbarLayout

JuheNews系列之二 · ToolBar+AppBarLayout+CoordinatorLayout+CollapsingToolbarLayoutAndroid5.0重要的改变之一,除了Material Design风格的设计思想,应该就是沉浸式状态栏了吧。之前实现沉浸式的效果时,都是借助SystemBarTint来实现,或许以后你也可以丢弃这种方式了。除此之外,由于actionbar不够灵

2016-05-27 16:14:37 5719

原创 JuheNews系列之一 · 前言

JuheNews系列之一 · 前言做安卓两年多,技术日新月异,虽然每天都在敲代码,但是感觉其实一直都是用的5.0及以前的那些控件、特效、风格。今天是2016年5月26日,Android N发布已经一周了,什么Material Design,什么mvp、mvvm、data binding,之前统统都没用过,回头想想,觉得作为一个安卓程序员真是失败啊。前段时间研究MVP模式时,发现了一个不错的项目Sim

2016-05-26 14:30:13 875

原创 Android MVP实战

前言前些天,在公司实习的测试妹纸回学校答辩了,要我给她做个毕业设计,说要求不高,看看界面就行。七搞八搞给做了个,但是项目一开始并不是用mvp写的,因为那时感觉对mvp的理解还不是很深刻。前两天有空,就把它改成了mvp风格的样子,所以也就有了这篇博客。网上也有很多文章跟demo,初看时始终不得其解,后来在将那个项目改成mvp的过程中才开始有了拨云见月的感觉,这篇博客也将尽可能用通俗易懂的语言来帮助更多

2016-05-12 15:19:45 1682

原创 简单的测量工具实现

先来看看魅族上面自带的一个工具效果。

2016-04-28 17:55:58 550

转载 MVC、MVP、MVVM、Data Binding

转自阮一峰的网络日志 复杂的软件必须有清晰合理的架构,否则无法开发和维护。 MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛应用。它本身很容易理解,但是要讲清楚,它与衍生的 MVP 和 MVVM 架构的区别就不容易了。昨天晚上,我读了《Scaling Isomorphic Javascript Code》,突然意识到,它们的区别非常简单。我用几段话

2016-04-19 09:56:21 1129

原创 访问assets中文件各种文件的方法

可以通过这个方法来找到是否有你要的那个文件:String[] list = null;list = getResources().getAssets().list("abc");它返回的是在assets文件夹下abc文件夹中文件的文件名的列表。再去检查list中是否有你需要的文件。读取abc文件夹中的文件的时候只需:InputStream in = getResources().getAssets

2016-03-23 18:26:12 3131

转载 HTTP协议之multipart/form-data请求分析

首先来了解什么是multipart/form-data请求: 根据http/1.1 rfc 2616的协议规定,我们的请求方式只有OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE等,那为为何我们还会有multipart/form-data请求之说呢?这就要从头来说了。http协议大家都知道是规定了以ASCII码传输,建立在tcp、ip协议之上的应用层规范,规范内容把ht

2016-03-16 14:20:33 650

转载 怎么解决Android studio导入项目卡死

文/devbird(简书作者) 原文链接:http://www.jianshu.com/p/e1c0b46e317c 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。 在使用Android studio的时候常常遇到这样的问题,从github或是其他地方导入项目,Android studio呈现卡死的现象!当遇到这种情况时,可以看看是下面那种情况,在按照方法来解决!一、首次启

2016-03-12 11:44:53 902

原创 Adapter的getView不调用的问题

adapter的getView不调用的问题 一年后又找到这个问题,把layout_height改成matchparent也没什么卵用,但是确实是因为adapter的初始getCount为0导致listview的高度为0,所以listviw在界面上不显示,导致即使adapter刷新也没用。 不信你可以用dump view hierarchy看一下你的布局,里面是没有listview的。 这两个问

2016-03-08 10:26:27 1164

原创 圆形ImageView系列(二)-----Xfermode+ImageView

前言上一篇文章《 圆形ImageView系列(一)—–Xfermode+View》介绍了Xfermode,并且结合View实现了圆形ImageView,这种方式实现的思路和方法都很简单,但是使用起来总感觉少了点什么。既然是圆形ImageView,但是原生的ImageView的很多属性却使用不了,比如scaleType等等,所以下面我们使用第二种方案。主要原理 在ImageView的上面覆盖一个遮

2016-02-15 11:46:40 748

原创 圆形ImageView系列(一)-----Xfermode+View

前言看标题就知道,这是一个系列,因为实现圆形ImageView的方法有很多种,所以接下来准备将这几种方法都实现一遍,最后总结对比下各种方法。虽然网上已经有很多现成的分析文章以及源代码,但是毕竟是别人总结的,还是没有自己实践来的真实。纸上得来终觉浅,绝知此事要躬行哈。下面就开始来说最简单常用的一种方法:自定义View+设置Xfermode的方式。先给大家看效果图: 提莫萌萌哒~ 主要原理关于X

2016-02-02 17:30:44 843

原创 瀑布流式标签

实现背景打造Android中的流式布局和热门标签 看到鸿洋大神的这个视频教程有感而发,于是自己重新写了一遍这个viewgroup,大体思路一致,不过关键地方改成了我自己比较容易理解的算法: 对于标签直接的间距,鸿洋大神用的是给标签设置margin的方式,而我用的是对ViewGroup的自定义水平间距、垂直间距的方式; onLayout中,鸿洋大神先是判断标签的换行情况,然后再将每个标

2016-01-28 17:35:17 1676

转载 如何自学Android编程?

你们期待的终于来了,我可以算作是Android自学界的鼻祖了,之前自学的故事与分享的知识、经验影响了无数人,如今几年过去了,我经常收到不少人的感谢信,很多当初看我的教程的初学者如今已经在Android开发小有成就,而且让我欣慰的是他们也依然延续我的分享精神,影响更多的人。 如果你现在依然是一个Android初学者,不妨到这里看下我的自学故事: 如何自学Android编程 http

2016-01-25 18:13:03 844

原创 基于事件分发机制,以最小代价实现listview顶部悬浮效果

先看效果图。 最近boss要在项目里面实现一个顶部悬浮的效果,在网上找了不少项目,基本上有三种方案: 1.整个布局分为上下两层,下面那层是有listview的布局,上面那层是悬浮view,而且固定在底部;一开始悬浮的view隐藏,通过监听listview的滑动状态来控制那个悬浮view 的显隐来达到“悬浮”的效果。(示例代码) 2.这种也是分两层,下面还是listview的布局,

2016-01-05 16:34:28 935

原创 自定义view————Android上的劳力士

来来来,先看看效果。 记得在学校学习的时候也写过一个C语言的手表,不过指针好像一直转不准,想想还是当年太年轻~囧~~ 最近在研究canvas,看到某人写的例子里面也有只手表,今天便花了点时间自己重新写了一个,当是练手了。 例子本身没什么难的,初学者应该都看得懂。 首先拆分这个view:手表的刻度和整点时刻是不变的,可以通过view的宽高直接画在中心指针单独拿出来画,因为要计算角度所

2015-12-02 17:08:18 1030

原创 Android百度地图相关总结

一、百度坐标转换成gps坐标搜了很多资料,几乎都是下面这个方法,但是都是根据计js来的,并没有安卓里面可以使用的方案。js中百度坐标转成gps坐标的方法上面链接中的方案大致如下: 1.将要转换的百度坐标a先假设成gps坐标; 2.将该坐标a按照百度sdk说明文档转换成百度坐标b(看到这里是不是觉得博主有病–!); 3.根据公式计算出我们需要的真正的gps坐标值 X = 2*Xa-Xb,

2015-11-17 10:16:18 1078

原创 位运算,安卓源码里的各种Flag

一直看不懂源码里的各种位运算,各种flag与非或非的,头大。View里面有各种状态,都是用flag常量来标记的,然后用一个成员变量跟这些值通过位运算,来判断view当前的状态。奈何在学校的时候没有好好学,各种知识都不记得了,今天重温Handler那块的源码时,突然有了灵感。MessageQueue里面有个next方法,从消息队列中死循环不停取出消息,当然这个跟我要讲的内容无关,我贴出来

2015-11-02 11:36:52 1138 1

原创 csdn博客客户端开发日记----2015年7月22日

最近在csdn博客上发现了很多好的文章,找了很多博客导出工具都弄不下来,恰好最近手上没什么事,就想着做一个csdn博客的app。csdn上也有前辈已经做过博客的app了,我看了下好像只支持专家博客的,对于一般人的好像并不支持查看。原来在学校的时候做过一个查课表的app,虽然是失败了,不过也知道一些网页爬虫的工具,比如httpwatch,htmlpaser等等。工作一年之后,感觉经验比之

2015-07-22 20:33:23 598

原创 Zxing 在Fragment中实现二维码扫描(不推荐使用)

最近项目有个需求是要在fragment中扫描二维码,之前看到网上有资源是在Activity实现的,很好用,所以今天抽空把它改到fragment里面去了。改的过程并没有很复杂,就是把activity和fragment中有区别的地方抽象出来一个共用的接口,然后在activity和fragment中去不同的实现相关代码,然后在fragment中用getActivity()代替直接调用。

2015-07-21 15:48:54 5218 5

原创 android判断应用是否在前台

第一种思路是如果该应用在运行,则拿到那个应用进程的信息,然后用这个等式appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND来判断它是否在前台。 /** * 程序是否在前台运行 * * @return */ public static boolean isAppOnForegrou

2015-04-29 14:46:54 943

转载 Android targetSdkVersion 17 @JavascriptInterface

targetSdkVersion 是设置希望的SDK版本,如果设置了此属性,那么在程序执行时,如果目标设备的API版本正好等于此数值,他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。 但是,这个设置仅仅是一个声明、一个通知,不会有太实

2015-03-18 09:41:43 536

原创 Exception in thread "main" java.lang.UnsatisfiedLinkError: com.mzlr.jni.Calculater.Sum(II)I at com.

看下vs项目里面方法声明和定义写的是不是一样的,如果声明的是JNIEXPORT jint JNICALL Java_com_mzlr_jni_Calculater_Sum  (JNIEnv *, jobject, jint, jint);但是定义写的是这个JNIEXPORT jint JNICALL Java_Calculater_Sum(JNIEnv *env,

2015-01-09 11:48:58 964

转载 Android中scrollview与webview冲突事件,viewpager同理!!!

Android中scrollview与webview冲突事件_Linux编程_Linux公社-Linux系统门户网站http://www.linuxidc.com/Linux/2014-03/98847.htm在做更新界面的时候,同时使用了scrollview和webview两个组件。在模拟器中测试的时候没有问题,但是在手机上测试的时候,发现滚动不了,于是乎查资料发现是这两

2014-12-16 15:18:39 2034 3

转载 JAVA:Random的种子含义

(4)JAVA:Random的种子含义_瓜瓜_新浪博客http://blog.sina.com.cn/s/blog_64d5f4bd0100h0zz.htmlJDK中关于Random的构造函数叙述如下:public Random()创建一个新的随机数生成器。此构造方法为随机数生成器的种子设置某个值,该值与此构造方法的所有其他调用所用的值完全不同。

2014-12-08 11:40:53 1783

原创 动态添加textview设置margin属性不生效

使用的是layoutparams吗?换成LinearLayout.LayoutParams试试。

2014-12-08 11:33:08 1738

开心浴室Mvp

http://blog.csdn.net/aishang5wpj/article/details/51384371

2016-05-12

事件分发实现listview顶部悬浮

基于事件分发实现listview顶部悬浮,详见http://blog.csdn.net/aishang5wpj/article/details/50463608

2016-01-29

android瀑布流标签

详见http://blog.csdn.net/aishang5wpj/article/details/50602230

2016-01-29

基于事件分发实现listview顶部悬浮

基于事件分发实现listview顶部悬浮,详见http://blog.csdn.net/aishang5wpj/article/details/50463608

2016-01-05

基于事件分发机制实现listview顶部悬浮效果

基于事件处理机制,实现listview顶部悬浮。详见http://blog.csdn.net/aishang5wpj/article/details/50463608

2016-01-05

android自定义view-劳力士手表

自定义view实现劳力士手表,

2015-12-02

Zxing 在Fragment中实现二维码扫描

Zxing 在Fragment中实现二维码扫描 - aishang5wpj的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/aishang5wpj/article/details/46987031

2015-07-21

android判断程序在前台还是后台的两种方式

判断程序在前台还是后台,直接运行就好

2015-04-29

textview文字跑马灯

自定义Textview,无任何限制,直接使用,两种显示类型

2014-07-28

GLSurfaceView入门demo

介绍GLSurfaceView的3个简单的小demo,新手入门可以参考下

2014-07-16

EclipseMe插件

安装方法http://www.yesky.com/382/1930382.shtml

2014-07-10

空空如也

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

TA关注的人

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