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

之前结合源码分析完了自定义View的三个阶段:measure,layout,draw。 那么,自定义有哪几种常见的方式呢? 直接继承自View 在使用该方式实现自定义View时通常的核心操作都在onDraw( )当中进行。但是,请注意,在分析measure部分源码的时候,我们提到如果直接继承自View在onMeasure( )中要处理view大小为wrap_content的情况,否则这种情...
阅读(18417) 评论(55)

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

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

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

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

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

大家知道,自定义View有三个重要的步骤:measure,layout,draw。而measure处于该链条的首端,占据着极其重要的地位;然而对于measure的理解却不是那么容易,许多问题都是一知半解,比如:为什么父View影响到了子View的MeasureSpec的生成?为什么我们自定义一个View在布局时将其宽或者高指定为wrap_content但是其实际是match_parent的效果?子V...
阅读(31001) 评论(89)

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

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

仿QQ获取设备中APK并分享

我和郭霖13年,郭霖开始写技术博客。我在CSDN的博客频道逛着玩,刚好看到他的文章,于是点击进去阅读。看完之后最大的感受就是:代码整齐,技术深厚;文章写得图文并茂,有条有理。从那时起,我就成了郭霖的一个粉丝,每周四早晨都等着看他的更新。诚实地说:没有脑残地追过星,但这么实在地喜欢看一个人写的技术博客,这还是头一回。其实,从他每篇文章的点击量和评论数也可以看出:大家对郭霖非常的认可。他也常出现在CSD...
阅读(18002) 评论(11)
    个人资料
    • 访问:1683744次
    • 积分:23958
    • 等级:
    • 排名:第254名
    • 原创:757篇
    • 转载:0篇
    • 译文:1篇
    • 评论:1073条
    博客专栏
    开发交流


    为方便大家学习和交流Android开发,建了个群,欢迎大家加入。

    QQ群: 183899857

    文章分类