谷哥的小弟

坚持原创,热衷分享;积累技术,沉淀生活

排序:
默认
按更新时间
按访问量

推翻自己和过往,重学自定义View

关于自定义View以前看了很多资料看,从博客园到CSDN,从stackoverflow到EOE论坛,从百草园到三味书屋,搜了一大筐,沮丧的发现这些文章大同小异:只举个简单的例子,很少研究为什么;人云亦云,文章里的内容根本没有去验证和深究就发出来了;或者避重就轻展示简单的Demo直接把难点给绕过去了...

2016-06-14 13:49:50

阅读数:33654

评论数:70

深入探讨Android异步精髓Handler

Google采用Handler把主线程和子线程精巧地联系起来——子线程中进行耗时的业务逻辑,然后利用Handler通知主线程刷新UI。其实,在AsyncTask和IntentService的内部亦使用了Handler实现其主要功能。抛开这两者不谈,当我们打开Android源码的时候也随处可见Han...

2016-12-01 00:08:41

阅读数:18996

评论数:44

站在源码的肩膀上全解Scroller工作机制

在Android中我们常见到的ListView、Launcher、SlidingMenu、ViewPager等等这些具有弹性滑动的View的背后都隐藏着一个机智又乖巧的小精灵——Scroller。这些控件的使用场景和作用各不相同,但在它们的内部均广泛又深刻地使用了Scroller的scrollTo...

2016-11-16 10:26:57

阅读数:17969

评论数:31

Android多分辨率适配框架(1)— 核心基础

Android的源码公开策略丰富了手持设备的多样性,但随之而来的却是较为严重的"碎片化"——版本繁多、尺寸多样、功能定制。在Android项目开发中,软件工程师都会面临一个问题:如何适配多不同分辨率的设备? 许多人采用的是这样的方式:利用不同的dimens和drawable资...

2016-10-14 16:35:22

阅读数:20915

评论数:33

自定义View系列教程08--滑动冲突的产生及其处理

在之前的几篇文章中,我们已经分析了View对于Touch的处理以及ViewGroup对于Touch事件的分发。但在开发中时常遇到一个棘手的问题:Touch事件的滑动冲突。比如ListView嵌套ScrollView,ViewPager嵌套ScrollView,ListView嵌套ScrollVie...

2016-06-13 17:17:58

阅读数:11063

评论数:39

自定义View系列教程07--详解ViewGroup分发Touch事件

在上一篇中已经分析完了View对于Touch事件的处理,在此基础上分析和理解ViewGroup对于Touch事件的分发就会相对容易些。 当一个Touch事件发生后,事件首先由系统传递给当前Activity并且由其dispatchTouchEvent()派发该Touch事件,源码如下: publ...

2016-06-13 10:05:32

阅读数:15974

评论数:49

自定义View系列教程06--详解View的Touch事件处理

在之前的几篇文章中结合Andorid源码还有示例分析完了自定义View的三个阶段:measure,layout,draw。 在自定义View的过程中我们还经常需要处理View的Touch事件,这就涉及到了大伙常说的Touch事件的分发。其实,这一部分还是有些复杂的,而且有的地方不是很好理解,尤其是...

2016-06-06 07:23:37

阅读数:16448

评论数:25

自定义View系列教程05--示例分析

之前结合源码分析完了自定义View的三个阶段:measure,layout,draw。 那么,自定义有哪几种常见的方式呢? 直接继承自View 在使用该方式实现自定义View时通常的核心操作都在onDraw( )当中进行。但是,请注意,在分析measure部分源码的时候,我们提到如果直接继...

2016-05-31 22:06:40

阅读数:20862

评论数:60

自定义View系列教程04--Draw源码分析及其实践

通过之前的详细分析,我们知道:在measure中测量了View的大小,在layout阶段确定了View的位置。 完成这两步之后就进入到了我们相对熟悉的draw阶段,在该阶段真正地开始对视图进行绘制。按照之前的惯例,我们来瞅瞅View中draw( )的源码 public void draw(Can...

2016-05-26 07:53:47

阅读数:23871

评论数:34

自定义View系列教程03--onLayout源码详尽分析

在经过measure阶段以后,系统确定了View的大小,接下来就进入到layout的过程。 在该过程中会确定视图的显示位置(即子View在其父控件中的位置)。 嗯哼,我们直接扒开源码从View的layout( )开始入手。 //l, t, r, b分别表示子View相对于父View的左、...

2016-05-17 07:24:46

阅读数:22831

评论数:34

自定义View系列教程02--onMeasure源码详尽分析

大家知道,自定义View有三个重要的步骤:measure,layout,draw。而measure处于该链条的首端,占据着极其重要的地位;然而对于measure的理解却不是那么容易,许多问题都是一知半解,比如:为什么父View影响到了子View的MeasureSpec的生成?为什么我们自定义一个V...

2016-05-12 15:09:59

阅读数:35949

评论数:93

自定义View系列教程01--常用工具介绍

在自定义View的时候,常常会用到一些Android系统提供的工具。这些工具封装了我们经常会用到的方法,比如拖拽View,计算滑动速度,View的滚动,手势处理等等。如果我们自己去实现这些方法会比较繁琐,而且容易出一些bug。所以,作为自定义View系列教程的开端,先介绍一下这些常用的工具,以便在...

2016-05-05 16:50:38

阅读数:41557

评论数:61

仿QQ获取设备中APK并分享

我和郭霖13年,郭霖开始写技术博客。我在CSDN的博客频道逛着玩,刚好看到他的文章,于是点击进去阅读。看完之后最大的感受就是:代码整齐,技术深厚;文章写得图文并茂,有条有理。从那时起,我就成了郭霖的一个粉丝,每周四早晨都等着看他的更新。诚实地说:没有脑残地追过星,但这么实在地喜欢看一个人写的技术博...

2016-05-03 07:49:11

阅读数:18905

评论数:12

Android官方底部Tab栏设计规范

上一篇《仿微信底部Tab栏》中粗略的讲了下底部Tab栏的封装,不少同学在实际运用中发现了一些问题,比如我demo中的title用了actionbar,所以如果新建的Activity的Theme不包含actionbar就回出现空指针;再比如假如底部的Tab对应的并不全都是Fragment,而是一部分...

2016-04-20 19:28:51

阅读数:21678

评论数:2

封装实践——打造微信底部tab栏

目前市面上很多App都采用底部一个Tab栏,管理四到五个Tab,然后选择切换页面的方式的设计,这虽然不太符合metro design,但确是一个不容易出错而又符合国人使用习惯的设计方式。比如微信,支付宝,网易新闻,简书等都采用这种设计。而所谓封装一定是基于某种确定的业务需求,所以针对上述的通用设计...

2016-04-11 15:47:34

阅读数:11358

评论数:3

利用ActivityLifecycleCallbacks判断APP是否在后台运行

利用ActivityLifecycleCallbacks判断APP是否在后台运行(附源码)

2016-04-05 07:29:03

阅读数:13099

评论数:5

View的draw过程源码分析

/** * * 原创作者: * 谷哥的小弟 http://blog.csdn.net/lfdfhl * * 文档描述: * View的draw过程源码分析 * * 绘制过程分为六步: * * 1. Draw the backgr...

2016-03-30 22:36:30

阅读数:1631

评论数:0

Android使用ViewPager实现无限循环滑动及轮播(附源码)

MainActivity如下: package cc.ww; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.os.Bundle; ...

2016-03-30 17:21:17

阅读数:8565

评论数:1

自定义可折叠和展开的View

CollapseView如下: package com.ww.collapseview; import android.annotation.SuppressLint; import android.content.Context; import android.text.TextUtils; ...

2016-03-29 15:36:30

阅读数:4462

评论数:3

View的Layout过程源码分析

/** * 文档描述: * View的Layout过程源码分析 * * 原创作者: * 谷哥的小弟 http://blog.csdn.net/lfdfhl * * 分析笔记: * View在经历过第一阶段的measure之后,进入到第二阶段layout. *...

2016-03-27 22:00:27

阅读数:1496

评论数:0

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