自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Android自定义控件之仿京东商城下拉刷新

前面写了4篇自定义控件的博客,并且开通了一个专栏,把4篇文章添加到专栏中了,耐心等待博客专栏的徽章出现,奈何等了几周后还是没有出现,后来发现至少需要5篇文章才能出现专栏徽章,于是有了这篇仿我大京东快递小哥的下拉刷新。 直接上图先! 分析这个下拉刷新效果分为两个部分: step1:快递小哥和快...

2015-11-23 21:01:08 11035 20

原创 Android自定义控件之仿汽车之家下拉刷新

关于下拉刷新的实现原理我在上篇文章Android自定义控件之仿美团下拉刷新中已经详细介绍过了,这篇文章主要介绍表盘的动画实现原理 汽车之家的下拉刷新分为三个状态: 第一个状态为下拉刷新状态(pull to refresh),在这个状态下是一个表盘随着下拉的距离动态改变指针的角度 第二个状态...

2015-11-02 09:19:25 9459 13

原创 Android自定义控件之仿美团下拉刷新

美团的下拉刷新分为三个状态: 第一个状态为下拉刷新状态(pull to refresh),在这个状态下是一个绿色的椭圆随着下拉的距离动态改变其大小。 第二个部分为放开刷新状态(release to refresh),在这个状态下是一个帧动画,效果为从躺着变为站起来的动画。 第三个部分为刷新状...

2015-11-01 14:41:23 13273 15

原创 Android自定义控件之动态柱状图

设计思路:1.画柱状图 2.画竖线 3.画顶部横线 4.画文字1.画柱状图画柱状图的方法很简单,就是使用canvas.drawRect(float left, float top, float right, float bottom, Paint paint),其实这里我遇到了一个问题,一开...

2015-10-30 22:06:03 7844 5

原创 Android自定义控件之百分比圆环进度条

首先我们先来看一下效果 分析我们来看这个进度条应该分为3个小部分 1.中间的圆 2.外边的圆环 3.中间的文字分开画这3部分就是需要我们自己画出来的,因此我们需要3根画笔//设置中心园的画笔 mCirclePaint = new Paint(); ...

2015-10-15 21:52:32 9260 15

原创 Android自己动手打造XML解析框架

我们在工作中,经常会从服务器获取数据并进行解析,服务器返回的数据有两种:json和xml。json我们可以用gson或者fastjson等优秀的开源框架去进行解析,省去不少麻烦,通常我们只需要把bean设计出来,然后调用一句话就可以解析成功了。而解析xml数据,我们得去一个标签一个标签的去比较,修...

2015-07-20 09:11:39 11280 9

原创 How to elicit requirements for an innovative product?

You shall think through the following topics, and select one or more to discuss your views on how to do it, and the advantages and potential limitati...

2017-01-04 21:10:07 620 1

原创 SLR-智能交通道路最优化分配

Research Paper Title 智能交通道路最优化分配 Database CSCD Journal/Conference Name 城市规划 Keywords used for retrieving 智能交通、多智能体、协调控制、城市交通控制 Backgroun...

2017-01-03 23:17:48 1913 2

原创 KAOS-智能交通系统软件需求说明书

1 介绍智能交通系统(Intelligent Traffic Systems, ITS)的前身是智能车辆道路系统(Intelligent Vehicle Highway System, IVHS)。智能交通系统将先进的信息技术、数据通信技术、传感器技术、电子控制技术以及计算机技术等有效地综合运用于...

2017-01-03 22:26:31 3354 0

原创 Android自定义ViewGroup打造各种风格的SlidingMenu

刚刚学习了鸿洋大大的QQ5.0侧滑菜单的视频课程,鸿洋大大用的是HorizontalScrollView来实现的侧滑菜单功能,HorizontalScrollView的好处是为我们解决了滑动功能,处理了滑动冲突问题,让我们使用起来非常方便,但是滑动和冲突处理都是android中的难点,是我们应该掌...

2016-02-22 09:56:58 9322 34

原创 Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能

首先推荐一下鸿洋大大的打造个性的图片预览与多点触控视频教程,这套教程教我们一步一步实现了多点触控实现对图片的平移和缩放的功能,这篇文章我将在鸿洋大大的基础之上做了一些扩展功能: 1.图片的惯性滑动 2.图片缩放小于正常比例时,松手会自动回弹成正常比例 3.图片缩放大于最大比例时,松手会自动回...

2016-02-17 10:36:48 8635 28

原创 Android一步一步带你实现RecyclerView的拖拽和侧滑删除功能

先上效果图: 本篇文章我们来学习一个开源项目Android-ItemTouchHelper-Demo 这个项目使用了RecyclerView的ItemTouchHelper类实现了Item的拖动和删除功能,ItemTouchHelper是v7包下的一个类,我们看一下他的介绍 This is...

2016-01-13 14:53:15 25777 34

原创 Android设计模式之一个例子让你彻底明白工厂模式(Factory Pattern)

提出疑问这几天研究工厂模式的时候,看到网上的一些文章中举的例子我就很疑惑,我相信这也是许多人的疑惑:工厂模式的功能就是创建实例,我们创建实例直接new不就完了吗,干嘛还得再封装一层工厂类,然后用工厂类再去new出这个实例?这不多此一举吗?比如我看到这样的例子,我们的用户分为金牌用户和银牌用户,我们...

2015-12-29 13:36:59 10883 43

原创 Android设计模式之一个例子让你彻底明白装饰者模式(Decorator Pattern)

导读这篇文章中我不会使用概念性文字来说明装饰者模式,因为通常概念性的问题都很抽象,很难懂,使得读者很难明白到底为什么要使用这种设计模式,我们设计模式的诞生,肯定是前辈们在设计程序的时候遇到了某种困难,为了避免这种苦难的发生,从而设计出来的这种设计模式,所以这篇文章中我会带领大家遇见这种困难,从而使...

2015-12-27 19:40:43 5954 13

原创 Android自定义控件之仿知乎详情页

效果图包含的技术点这个知乎的详情页面所包含的几个技术点:1. support.v7包下的ToolBar的使用 2. ScrollView实现滑动顶部停靠 3. 监听手势滑动方向来显示和隐藏底部视图 ToolBar的使用知乎的Material Design版本顶部的导航是一个ToolBar控件...

2015-12-26 19:13:43 7501 22

原创 Android设计模式之建造者模式(builder pattern)

builder设计模式我们很常见,比如我们使用AlertDialog的时候就使用的builder设计模式,著名的Universal-Image-Loader的初始化配置也是使用的builder设计模式,那么他们为什么使用builder设计模式,什么情况下我们应该考虑使用builder设计模式,这是...

2015-12-25 10:08:45 5016 11

原创 Android并发编程之如何使用ReentrantReadWriteLock替代synchronized来提高程序的效率

Java的synchronized关键字可以帮助我们解决多线程并发的问题,比如我们有一个公共资源,多个线程都来操作这个公共的资源,就会出现并发的问题,比如不同的线程对同一个数据同时进行读和写,肯定会使得每个线程最后拿到的都不是自己所希望拿到的值,为了解决这个问题,我们可以使用synchronize...

2015-12-16 14:46:03 2309 1

原创 Android并发编程之全方位解析AsyncTask

AsyncTask内部是一个线程池去执行任务的,同一个AsyncTask只能execute()一次,这是为什么呢?我们可以通过一个例子来说明。 首先我们先不用AsyncTask,而是开启一个线程池来执行一个任务,我们将这个任务执行3次,线程池会把这个任务分配给3个线程来并发执行此任务,这3个线程...

2015-12-01 20:17:15 2530 3

原创 Android并发编程之Handler,MessageQueue,Looper详解

Handler和Looper,MessageQueue之间是什么关系? Looper和MessageQueue是线程中的概念,但是线程默认是没有Looper和MessageQueue的,我们需要手动去设置他们,当一个线程有了Looper和MessageQueue后,就可以关联一个Handler,...

2015-11-30 08:37:55 2359 5

原创 Android并发编程之白话文详解Future,FutureTask和Callable

说到并发编程,就一定是多个线程并发执行任务。那么并发编程的基础是什么呢?没错那就是Thread了。一个Thread可以执行一个Runnable类型的对象。那么Runnable是什么呢?其实Runnable是一个接口,他只定义了一个方法run(),这个run()方法里就是我们要执行的任务,并且是要被...

2015-11-23 08:19:17 12093 6

原创 Android并发编程之图文解析volatile关键字

相信很多人对于volatile关键字既熟悉又陌生,熟悉是对这个名字很熟悉,陌生是对他的原理和用法很陌生,最近几天通过查阅大量资料和书,终于对volatile有了一定的理解,写此博客一来做了记录,二来使大家减少学习成本volatile为什么不能保证原子性?现在我们的手机都是多核的,也就是说同时有好几...

2015-11-20 11:28:04 8904 13

原创 Android完美解析setContentView 你真的理解setContentView吗?

导读:本篇文章的前半部分为源码分析,后半部分为一个例子,在例子中我们会遇到一些问题,从而回答前半部分留下的问题!

2015-11-06 09:26:00 22449 15

原创 Android使用Messenger实现进程间通信

Messenger是一种轻量级的IPC方案,在进程间传送Message对象,Message中可以传送Bundle对象,Bundle中可以传送我们实现了Parcelable接口的对象。使用Messenger不会出现并发读写问题,因为Messenger是以串行方式工作的,所以如果有大量的请求,不适合使...

2015-11-03 14:08:53 1951 0

原创 Android实现复制粘贴功能

Android复制粘贴功能

2015-09-30 15:16:57 3320 0

原创 Android使用枚举单例实现Toast快速刷新

通常我们使用Toast的时候可能会直接这样写:Toast.makeText(context, text, duration).show();这样写通常会有这样一个问题:新Toast要等上一次Toast结束后才能显示出来 这样的用户体验是不好的,当用户点的过快时,根本不知道提示出来的Toast...

2015-09-30 14:26:13 3950 3

原创 是时候弄清楚getExternalStorageDirectory()和getExternalFilesDir()的区别了

之前看到一位网友的吐槽:当我把手机连接到电脑上时,在SD卡根目录看到了成百上千个各种应用程序创建的文件夹,拜托了各位开发者,你真的认为我的手机上只安装你一个app吗?你认为你的app是世界上最重要的app吗?你应该将你的应用数据写到这个路径下!

2015-09-01 14:29:45 90364 17

原创 Android性能优化之使用SoftReference缓存图片

什么是SoftReference? SoftReference是一个Java类,它代表一个引用,可以被垃圾回收器(GC)回收掉。每一个Java对象都会持有一个其他对象的引用,只要有一个对象持有另一个对象的引用,那么GC就不会回收掉它,只有当我们的程序内存溢出时并且没有其他资源可以释放的时候,GC才...

2015-08-04 18:04:18 2350 2

原创 Android性能优化之提高ListView性能的技巧

ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能。

2015-07-29 15:13:27 17785 16

翻译 Android原生下拉刷新SwipeRefreshLayout实践

本篇文章翻译自Ravi Tamada的Android Swipe Down to Refresh ListView Tutorial首先来看一下效果图你应该发现许多的android app例如Twitter,Google+都提供了一个下拉刷新数据的功能,只要用户从上往下滑动,新的内容就会加载出来,...

2015-07-27 22:25:37 6320 1

原创 不需要任何权限获得Android设备的唯一ID

这个问题来自于Is there a unique Android device ID? 我对这个问题的答案做了整理,包括将另一篇文章加入进来作为补充,可以完美解决此问题。作者提出的问题: Android设备有没有唯一的id?如果有的话,我怎么通过java代码获得这个id?答案: 我读了sta...

2015-07-22 14:42:46 20717 9

原创 彻底明白如何设置minSdkVersion和targetSdkVersion

minSdkVersion和targetSdkVersion相信很多人都不太理解,我在网上也看了许多关于这两者区别的文章,感觉说的都很模糊,直到我在stackOverFlow看到Android Min SDK Version vs. Target SDK Version这篇文章后,我才终于弄清楚如...

2015-07-21 16:23:20 6633 1

原创 获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度

1.获取屏幕尺寸 2.获取控件尺寸 3.获取状态栏/通知栏高度 4.获取导航栏高度 5.去除导航栏 6.去除状态栏

2015-07-21 11:04:38 15453 2

翻译 绝对让你理解Android中的Context

这个问题是StackOverFlow上面一个热门的问题What is Context in Android? 整理这篇文章的目的是Context确实是一个很抽象的东西,我们在项目中随手都会用到它,可是很多人根本不理解它到底是干什么的,这篇文章还会添加Context in Andorid – IN...

2015-07-20 18:45:45 4116 0

翻译 Android启动Activity之后阻止EditText自动获得焦点

这个问题是StackOverFlow上面一个热门的问题Stop EditText from gaining focus at Activity startup。现在我将这个问题翻译并且将各路答案进行整理,保证可以解决这个问题作者遇到的问题如下:我有一个Activity,里面有一个EditText和...

2015-07-20 17:32:30 5935 2

转载 Android 通过反射随手可得的Application对象

在Android的开发当中,Application和Context对象应该是我们接触最多的对象了,特别是Context对象。 当我们在某个Activity或者Service当中时,由于它们本身就是Context的子类,因此“this”可以等价于Context对象使用。然而,在很多时候这个Conte...

2015-07-17 15:48:17 3641 1

原创 Android 通过反射让SQlite建表如此简单

我们通常使用SQlite的时候,如果我们有10张表,我们要写10个建表语句,而建表语句中只有一些字段的名字需要改而已,这样既费时又费力,还容易出错,我们知道写sql语句的时候经常会写错,如果写错程序就会崩掉,而且检查10个建表语句还可以,如果有100条我么就要疯了。这篇文章告诉大家如何通过反射来快...

2015-07-17 13:46:29 8626 7

原创 Android通过反射打造可以存储任何对象的万能SharedPreferences

我们通常使用SharedPreferences存储一些需要保存在本地,但又不至于存储在数据库里的一些数据,一般我们用它来存储一些用户名,密码等数据是非常方便的,那么如果我们想要存储的信息有10几条,我们就得写10几行重复的代码把他们存进去,取出来的时候还得写10几行代码将他们一条一条取出来,那么有...

2015-07-16 16:08:22 8580 1

翻译 Android网络框架-Volley实践 使用Volley打造自定义ListView

这篇文章翻译自Ravi Tamada博客中的Android Custom ListView with Image and Text using Volley 最终效果 这个ListView呈现了一些影视信息,每一行是一个影片的信息,每一行中有一张电影的图片,电影的名字、评分、类型、年份等信...

2015-07-16 12:57:19 2539 4

原创 Android网络框架-Volley(五) 使用Volley发送自定义Request

自定义一个RequestVolley已经帮我们实现好了StringRequest、JsonObjectRequest、JsonArrayRequest以及ImageRequest。如果我们想要发送一个xml请求,我们可以自定义一个Request。自定义一个Request我们需要: 1. 继承R...

2015-07-15 22:54:22 2745 0

原创 Android网络框架-Volley(四) 使用get和post方法发送json请求

这一篇文章我们介绍如何使用Volley发起请求,前提是我们得建立一个RequestQueue。在Android网络框架-Volley(二) RequestQueue源码分析以及建立一个RequestQueue 中我们介绍了如何创建一个单例的RequestQueue,如果不会的朋友可以看一下。 1....

2015-07-14 13:05:01 8573 0

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