Android
文章平均质量分 71
francisshi
这个作者很懒,什么都没留下…
展开
-
Android AsyncTask完全解析,带你从源码的角度彻底理解
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11711405我们都知道,Android UI是线程不安全的,如果想要在子线程里进行UI操作,就需要借助Android的异步消息处理机制。之前我也写过了一篇文章从源码层面分析了Android的异步消息处理机制,感兴趣的朋友可以参考 Android Handler、Mess转载 2015-05-06 11:57:40 · 413 阅读 · 0 评论 -
Android控件(一)下拉刷新:SwipeRefreshLayout
需要注意的是SwipeRefreshLayout下面只可以有一个直接子节点。布局文件如下。<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/contain原创 2014-10-13 15:51:35 · 1727 阅读 · 0 评论 -
Android Touch事件传递机制解析
android系统中的每个ViewGroup的子类都具有下面三个和TouchEvent处理密切相关的方法:1)public boolean dispatchTouchEvent(MotionEvent ev) 这个方法用来分发TouchEvent2)public boolean onInterceptTouchEvent(MotionEvent ev)原创 2014-10-09 13:09:25 · 499 阅读 · 0 评论 -
Android Volley完全解析(四),带你从源码的角度理解Volley
经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚。因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍。同时,这也是Volley系列的最后一篇文章了。其实,Volley的官方文档中本身就附有了一张Volley的工作流程图,如下图所示。多数朋友突然看到一张这样的图,应转载 2014-10-24 22:43:27 · 377 阅读 · 0 评论 -
Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻的理解了。还未阅读过的朋友,请先参考 Android事件分发机制完全解析,带你从源码的角度彻底理解(上) 。那么今天我们将继续上次未完成的话题,从源码的角度分析ViewGruop的事件分发。首先我们来探讨一下,什么是ViewGrou转载 2014-10-24 17:25:26 · 368 阅读 · 0 评论 -
Android自定义控件(一):下拉刷新,支持ListView和GridView
首先讲一下实现原理。这里我们将采取的方案是使用组合View的方式,先自定义一个布局继承自LinearLayout,然后在这个布局中加入下拉头和ListView这两个子元素,并让这两个子元素纵向排列。初始化的时候,让下拉头向上偏移出屏幕,这样我们看到的就只有ListView了。然后对ListView的touch事件进行监听,如果当前ListView已经滚动到顶部并且手指还在向下拉的话,那就将下拉头显原创 2014-10-04 17:59:07 · 1262 阅读 · 0 评论 -
Android Volley完全解析(三),定制自己的Request
经过前面两篇文章的学习,我们已经掌握了Volley各种Request的使用方法,包括StringRequest、JsonRequest、ImageRequest等。其中StringRequest用于请求一条普通的文本数据,JsonRequest(JsonObjectRequest、JsonArrayRequest)用于请求一条JSON格式的数据,ImageRequest则是用于请求网络上的一张图片转载 2014-10-24 22:40:58 · 389 阅读 · 0 评论 -
Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?等等……对于这些转载 2014-10-24 17:03:26 · 522 阅读 · 0 评论 -
Android访问网络,使用HttpURLConnection还是HttpClient?
最近在研究Volley框架的源码,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnection,而在Android 2.2及以下版本,使用的是HttpClient。我也比较好奇这么使用的原因,于是专门找到了一位Google的工程师写的一篇博客,文中对HttpURLConnection和HttpClient进行了对比,下面我就给大家简要地翻译转载 2014-10-25 00:02:02 · 369 阅读 · 0 评论 -
Android Volley完全解析(一),初识Volley的基本用法
1. Volley简介我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpClient,几乎在任何项目的代码中我们都能看到这两个类的身影,使用率非常高。不过HttpURLConnection和HttpCl转载 2014-10-24 21:22:14 · 372 阅读 · 0 评论 -
Android自定义视图(一):带下划线的TextView
package com.francis.underlinetextviewtest;import android.content.Context;import android.content.res.Resources;import android.graphics.Canvas;import android.graphics.Color;import android.graphics原创 2014-10-13 21:08:29 · 1909 阅读 · 0 评论 -
mac下查看jre路径
在Finder中command+shift+G选择/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home原创 2014-10-14 09:27:04 · 21377 阅读 · 0 评论 -
Android异步消息处理机制完全解析,带你从源码的角度彻底理解
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9991569之前也是由于周末通宵看TI3比赛,一直没找到时间写博客,导致已经有好久没更新了。惭愧!后面还会恢复进度,尽量保证每周都写吧。这里也是先恭喜一下来自瑞典的Alliance战队夺得了TI3的冠军,希望明年中国战队能够虎起!开始进入正题,我们都知道,Andr转载 2015-05-06 11:01:50 · 318 阅读 · 0 评论 -
属性动画(Property Animation)深入分析(原理、源码、实践)
最近想试试Material Design的ripple效果,于是下载了github上的material-ripple,效果还不错。用到的当然是动画啦,之前也没用接触过,索性来学习一下动画。整体来说,我参考了google的官方文档、郭大神关于Property Animation的分析、material-ripple的源码。所以以下就分这三块来讲,正好能“有个整体认识”、“了解其内部原理”、“原创 2015-01-08 20:28:32 · 1515 阅读 · 0 评论 -
跨进程调用Service(AIDL Service)
1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口icp:interprocess communication :内部进程通信 2.既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/原创 2014-10-16 09:28:18 · 792 阅读 · 0 评论 -
Bound Service的三种方式(Binder、 Messenger、 AIDL)
Bound Service的三种方式:Extending the Binder class;Using a Messenger;Using AIDL原创 2014-10-16 13:11:18 · 1962 阅读 · 0 评论 -
Android利用Get、Post 获取网络数据
布局很简单,就一个按钮,主要看一下MainActivity吧:package com.francis.httpget;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.view.Menu;import android.view.MenuIte原创 2014-10-14 20:53:39 · 1423 阅读 · 0 评论 -
Fragment中存放GridView,结合LruCache、DiskLruCache和HttpURLConnection实现图片下载、缓存
其实,在真正的项目实战当中如果仅仅是使用硬盘缓存的话,程序是有明显短板的。而如果只使用内存缓存的话,程序当然也会有很大的缺陷。因此,一个优秀的程序必然会将内存缓存和硬盘缓存结合到一起使用,那么本篇文章我们就来看一看,如何才能将LruCache和DiskLruCache完美结合到一起。首先准备DiskLruCache.java文件。Images.java:public final sta原创 2014-10-04 18:16:50 · 1020 阅读 · 0 评论 -
LinkedHashMap与LRU
1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在于,前者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代原创 2014-10-04 17:32:57 · 1284 阅读 · 0 评论 -
Android不规则瀑布流照片墙的实现+LruCache算法
可以想象的出,不规则的瀑布照片墙是ScrollView内嵌一个横向的LinearLayout再内嵌三个纵向的LinearLayout。如果不停地往LinearLayout里添加图片,程序很快就会OOM。因此我们还需要一个合理的方案来对图片资源进行释放,这里仍然是准备使用LruCache算法TravlesFragment:package com.francis.changtrav原创 2014-10-04 15:32:09 · 1824 阅读 · 0 评论 -
ActionBar + ViewPager(PagerSlidingTabStrip)
既然是要实现ActionBar,那么第一步当然就是编辑menu目录下的main.xml文件了,代码如下所示:<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActi原创 2014-10-04 14:46:59 · 1536 阅读 · 2 评论 -
Android Volley完全解析(二),使用Volley加载网络图片
Android Volley完全解析(二),使用Volley加载网络图片转载 2014-10-24 22:10:32 · 340 阅读 · 0 评论 -
Asynchronous Android读书笔记三Distributing Work with Handler and HandlerThread
Understanding LooperBuilding responsive apps with HandlerScheduling work with postCanceling a pending RunnableScheduling work with sendCanceling pending MessagesMultithreaded p原创 2014-09-07 23:49:42 · 773 阅读 · 0 评论 -
Asynchronous Android读书笔记二Staying Responsive with AsyncTask
Introducing the Dalvik Virtual MachineMemory sharing and the ZygoteUnderstanding the Android thread modelThe main threadBuilding Responsive Android ApplicationsUnresp原创 2014-09-07 21:32:39 · 589 阅读 · 0 评论 -
studio 引入包
直接:compile files('libs/google-play-services.jar')原创 2014-09-09 10:55:50 · 478 阅读 · 0 评论 -
安卓Tab导航的两种方式
第一种TabHost第二种ActionBar+Fragment附上第一种的代码:原创 2014-09-07 13:48:22 · 1294 阅读 · 0 评论 -
LruCache类简介
package android.util; import java.util.LinkedHashMap; import java.util.Map; /** * A cache that holds strong references to a limited number of values. Each time * a value is acce转载 2014-09-19 09:14:32 · 391 阅读 · 0 评论 -
Android图像处理之Bitmap类
Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。本文从应用的角度,着重介绍怎么用Bitmap来实现这些功能。 一、Bitmap的生成1.1 BitmapFactory decode出Bitmap Bitmap实现在android.graphics包中。但是Bitm转载 2014-09-19 14:06:03 · 411 阅读 · 0 评论 -
Service+(Notification+)Thread+HttpPost
启动service,同是发出一个toastIntent intent = new Intent(this, CollectingDataService.class);原创 2014-08-19 22:05:16 · 645 阅读 · 0 评论 -
Preference布局
ActionBar->startActivity->在新的Activity中添加Fragment原创 2014-08-19 21:26:34 · 753 阅读 · 0 评论 -
Content Provider 详解,实例演示
一、ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读原创 2014-08-06 22:06:12 · 626 阅读 · 0 评论 -
Intent 详解
目录Intent 详解... 1一、 Intent 作用... 1二、 Intent的构成... 1三、 intent的解析... 21.动作测试... 22.类别测试... 33.数据测试... 34.简单例子说明... 3三、Intent的构造函数... 45. 总结说明... 5实 例... 7 Intent 详解一、 Intent转载 2014-08-07 01:00:24 · 968 阅读 · 0 评论 -
ADT bundle+NDK配置
一共三步:下载NDK配置pa't原创 2014-08-04 23:25:39 · 466 阅读 · 0 评论 -
Asynchronous Android读书笔记五Queuing Work with IntentService
Introducing Serviceand IntentServiceBuilding responsive apps with IntentServiceReturning results with PendingIntentPosting results as system notificationsApplications of IntentServic原创 2014-09-08 10:48:56 · 647 阅读 · 0 评论 -
Asynchronous Android读书笔记六Long-running Tasks with Service
Building responsive apps with ServiceControlling concurrency with ExecutorsReturning results with MessengerDirect communication with local ServicesBroadcasting results with Intents原创 2014-09-08 12:19:52 · 518 阅读 · 0 评论 -
android studio 在项目中添加项目库
项目-右键-new module-Android Library-module name和package name 应该与要引进的库相同.然后在文件目录中replace新建的library在gradle中的dependencies添加compile project(':库名')另外在复制资源文件(res)时,可能会发生R文件错误,这是因为替换一些文件之后,旧文件中原本的一些属性原创 2014-09-17 16:59:24 · 1239 阅读 · 0 评论 -
自定义View之可删除item的ListView
MainActivity如下:package com.francis.deletablelistview;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.SimpleAdap原创 2014-09-24 09:13:49 · 1135 阅读 · 0 评论 -
Android中全屏或者取消标题栏
先介绍去掉标题栏的方法:第一种:也一般入门的时候经常使用的一种方法requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏注意这句一定要写在setContentView()方法的前面,不然会报错的第二种:在AndroidManifest.xml文件中定义application android:icon="@d转载 2014-08-27 19:14:39 · 333 阅读 · 0 评论 -
禁止GridView自动滑动功能(解决和ScrollView套嵌时的冲突)
前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全。 解决办法,自定义一个GridView控件 public class MyGridView extends GridView { public MyGridView(Context context, At转载 2014-09-22 13:38:47 · 2804 阅读 · 0 评论 -
Handler机制原理
在Android中谈到Handler,我们首先来讲一下Handler的机制和原理 1、Handler机制原理 Handler:主要是用来处理发送和接收消息的,作用是把消息加入特定的(Looper)消息队列中,并分发和处理该消息队列中的消息。构造Handler的时候可以指定一个Looper对象,通过Handler对象我们可以封装Message对象,然后转载 2014-08-14 01:51:08 · 2264 阅读 · 0 评论