- 博客(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关注的人