- 博客(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
1781
原创 PinnedHeaderListView源码详解
一、github项目地址与效果:https://github.com/JimiSmith/PinnedHeaderListView二、项目目录。可以看到,目录只有四个java文件,其实非常简单,MainActivity文件和TestSectionedAdapter文件和我们以前写一般的listview的两个文件是大致一样的,重点在PinnedHeaderListView和SectionedBaseA
2016-06-14 11:22:34
1234
原创 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
1582
原创 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
948
原创 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
1202
原创 rippleDrawable的要点解释
一rippleDrawable的mask颜色定义在ripple标签的color属性中;二rippleDrawable的mask大小定义在item标签中(除了selector有点特殊外,其余item的存在只是为了说明该mask的范围):1.如果 没有item标签,说明mask是无界限的;2.如果item标签的drawable属性是一个颜色值(颜色值本身没有意义,什
2016-04-17 10:44:45
1663
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
798
原创 从源代码理解IntentService
IntentService的源代码分析路径如下:onCreate( ) -> onStartCommand(Intent , int ) -> onStart(Intent ,int ) ->(内部类)ServiceHandler.handleMessage(Message ) -> onHandleIntent(Intent) ->stopSelf(Int)一.我们看on
2016-04-13 10:37:03
404
原创 从源代码理解AsyncTask的工作原理
首先,我们以AsyncTask的构造器和execute()方法作为研究的切入口;一.AsyncTask的构造器主要做了一些准备工作:public AsyncTask() { mWorker = new WorkerRunnable() { public Result call() throws Exception {
2016-04-12 15:36:43
366
原创 从源代码理解创建LayoutInflater的路径
首先要明确的是LayoutInflater是一个抽象类;我们先从LayoutInflater的使用说起:常见的使用在ListView 的 getView()方法中:itemView = LayoutInflater.from(mContext).inflate(mLayoutId , null);一.( LayoutInflater.from() -> Context.getS
2016-04-10 22:46:42
384
原创 从源代码理解调用OnCreate的路径
每个标题后的括号内容是 类到另一个类的跳转 。一.(ActivityThread.main() -> Thread.attach() )ActivityThread类是整个应用程序的入口,其中有个main方法;public static void main(String[] args){Looper.prepareMainLooper();ActivityThread t
2016-04-10 21:47:05
1169
原创 创建泛型数组非法的原因
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
867
原创 通过AIDL进程间通信
通俗点来说,AIDL通信的实现可以总结为:大家(客户端和服务端)都定义有相同的AIDL接口,你实现的那部分接口由我来调用,我实现的由你调用;AIDL通信的实现还是依赖于Binder;//服务端//AIDL文件package com.leo.aidl;interface infa {methodInvokedByClient(Object o);methodInvokedBySer
2016-03-11 23:57:33
525
原创 进程间通信使用Messenger
通过Messenger来完成进程间的通信,简单来说就是将自己创建的Messenger交给对方,对方就能通过这个Messenger来与你通信。客户端和服务端互传Messenger的方法并不相同,下面分别解释。 客户端想发信息给服务端,就得先得到服务端的Messenger:客户端请求与服务端连接:bindService(); 服务端通过onBind()返回自己创建
2016-03-11 17:38:27
375
原创 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
4462
原创 Android进程间通信Binder机制
以下皆为个人理解,如有不妥之处请谅解。首先是一些基础知识,IBinder 是一个接口 , Binder 是实现 IBinder的一个类;写一个Binder类可以通过AIBL 或者自己手动,这里以AIDL为例 ;以下是经过AIDL得到的Binder类代码结构(只写出重点部分,并不完整):public interface infa extends android.os.
2016-03-10 20:38:36
472
原创 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
440
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅