自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Android-SwipeToDismiss 源码分析

一、Android-SwipeToDismiss简介 (一)github地址 https://github.com/romannurik/Android-SwipeToDismiss (二)效果 解释一下github提供的demo,左边的是一列button,右边的是一个listview,当点击button或者listview的item时就会toast出“xxx被点击”之类

2016-06-17 20:03:56 1666

原创 PinnedHeaderListView源码详解

一、github项目地址与效果:https://github.com/JimiSmith/PinnedHeaderListView二、项目目录。可以看到,目录只有四个java文件,其实非常简单,MainActivity文件和TestSectionedAdapter文件和我们以前写一般的listview的两个文件是大致一样的,重点在PinnedHeaderListView和SectionedBaseA

2016-06-14 11:22:34 1141

原创 listview与其他控件的布局问题

(一)在LinearLayout中定义一个listview和button: 若button在上,listview在下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layou

2016-04-25 20:00:50 1480

原创 LinearGradient 的 使用

LinearGradient 的 使用: mLinearGradient = new LinearGradient(0, 0, 200,200, Color.YELLOW, Color.BLUE, Shader.TileMode.CLAMP); paint.setShader(mLinearGradient); canvas.dr

2016-04-24 11:26:47 834 1

原创 drawCircle、drawArc

drawCircle(float cx, float cy, float radius, Paint paint)画一个圆:前两个坐标分别是圆心坐标,第三个是半径,第四个画笔drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint) 画一个椭圆: 第一个是一个矩形,与椭圆外边相切

2016-04-24 09:54:36 1103

原创 rippleDrawable的要点解释

一 rippleDrawable的mask颜色定义在ripple标签的color属性中; 二 rippleDrawable的mask大小定义在item标签中(除了selector有点特殊外,其余item的存在只是为了说明该mask的范围): 1.如果 没有item标签,说明mask是无界限的; 2.如果item标签的drawable属性是一个颜色值(颜色值本身没有意义,什

2016-04-17 10:44:45 1512 1

原创 The import android.support.v7.app cannot be resolved

今早打开eclipse就发现这个问题: The import android.support.v7.app cannot be resolved 上谷歌查了半天,看到这篇问答: http://stackoverflow.com/questions/24651232/the-import-android-support-v7-app-cannot-be-resolved 本人尝试着根据答案将

2016-04-16 21:50:32 735

原创 从源代码理解IntentService

IntentService的源代码分析路径如下: onCreate( ) -> onStartCommand(Intent , int ) -> onStart(Intent ,int ) ->(内部类)ServiceHandler.handleMessage(Message )   -> onHandleIntent(Intent) ->stopSelf(Int) 一. 我们看on

2016-04-13 10:37:03 358

原创 从源代码理解AsyncTask的工作原理

首先,我们以AsyncTask的构造器和execute()方法作为研究的切入口; 一. AsyncTask的构造器主要做了一些准备工作: public AsyncTask() { mWorker = new WorkerRunnable() { public Result call() throws Exception {

2016-04-12 15:36:43 327

原创 从源代码理解创建LayoutInflater的路径

首先要明确的是LayoutInflater是一个抽象类; 我们先从LayoutInflater的使用说起: 常见的使用在ListView 的 getView()方法中:itemView = LayoutInflater.from(mContext).inflate(mLayoutId , null); 一.( LayoutInflater.from() -> Context.getS

2016-04-10 22:46:42 338

原创 从源代码理解调用OnCreate的路径

每个标题后的括号内容是 类到另一个类的跳转 。 一.(ActivityThread.main() -> Thread.attach()  ) ActivityThread类是整个应用程序的入口,其中有个main方法; public static void main(String[] args){ Looper.prepareMainLooper(); ActivityThread t

2016-04-10 21:47:05 1061 1

原创 创建泛型数组非法的原因

List[] stringLists = new List[1]; List intList = Arrays.asList(42); Object[] objects = stringLists; objects[0] = intList; String s = stringList[0].get(0);首先假设泛型数组合法,则第一行不会出现编译错误; 第一行和第二行都很容易理解,现在看第三

2016-03-13 16:43:37 787

原创 通过AIDL进程间通信

通俗点来说,AIDL通信的实现可以总结为:大家(客户端和服务端)都定义有相同的AIDL接口,你实现的那部分接口由我来调用,我实现的由你调用; AIDL通信的实现还是依赖于Binder; //服务端 //AIDL文件 package com.leo.aidl; interface infa { methodInvokedByClient(Object o); methodInvokedBySer

2016-03-11 23:57:33 417 2

原创 进程间通信使用Messenger

通过Messenger来完成进程间的通信,简单来说就是将自己创建的Messenger交给对方,对方就能通过这个Messenger来与你通信。 客户端和服务端互传Messenger的方法并不相同,下面分别解释。  客户端想发信息给服务端,就得先得到服务端的Messenger: 客户端请求与服务端连接:bindService();         服务端通过onBind()返回自己创建

2016-03-11 17:38:27 323

原创 Serializable序列化接口serialVersionUID的理解

下面是一个显式声明了serialVersionUID的例子: 在序列化和反序列化的代码中都有一个实现了Serializable 的User类; public class User implements Serializable { private static final long serialVerisionUID = 1L ; ... } //序列化过程 User user = new U

2016-03-10 21:59:33 4335 1

原创 Android进程间通信Binder机制

以下皆为个人理解,如有不妥之处请谅解。 首先是一些基础知识,IBinder 是一个接口 , Binder 是实现 IBinder的一个类; 写一个Binder类可以通过AIBL 或者自己手动,这里以AIDL为例 ; 以下是经过AIDL得到的Binder类代码结构(只写出重点部分,并不完整): public interface infa extends android.os.

2016-03-10 20:38:36 416

原创 android 群英传 的刮刮卡demo 心得

以下是摘自Android群英传(徐宜生编) public class XfermodeView extends View{ private Bitmap mBgBitmap , mFgBitmap ; private Paint mPaint ; private Canvas mCanvas ; private Path mPath ; public XfermodeView(Contex

2016-02-27 23:18:13 400

空空如也

空空如也

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

TA关注的人

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