小试view的执行过程,此是入门,高手绕道。

-------------------------------------------------------------------------------- 
此为抛砖引玉,个人看官自己发挥。 
结果如下:

  1. 12-05 22:23:03.587: D/mDebug(9715): TestView context, attrs=@2131034112
  2. 12-05 22:23:03.597: D/mDebug(9715): onFinishInflate
  3. 12-05 22:23:03.667: D/mDebug(9715): onSizeChanged,w=240,h=282,oldw=0,oldh=0
  4. 12-05 22:23:03.727: D/mDebug(9715): onDraw
  5. 12-05 22:23:03.757: D/mDebug(9715): onDraw

[size=l代码如下:[/size]

  1. public class TestView extends View {
  2. public TestView(Context context) {
  3. super(context);
  4. Log.d("mDebug", "TestView context");
  5. }
  6. public TestView(Context context, AttributeSet attrs, int defStyle) {
  7. super(context, attrs, defStyle);
  8. Log.d("mDebug", "TestView context,attrs,defStyle attrs="+attrs.getAttributeValue(0));
  9. }
  10. public TestView(Context context, AttributeSet attrs) {
  11. super(context, attrs);
  12. Log.d("mDebug", "TestView context, attrs="+attrs.getAttributeValue(0));
  13. }
  14. @Override
  15. protected void onDraw(Canvas canvas) {
  16. // TODO Auto-generated method stub
  17. super.onDraw(canvas);
  18. Log.d("mDebug", "onDraw");
  19. }
  20. @Override
  21. protected void onFinishInflate() {
  22. // TODO Auto-generated method stub
  23. super.onFinishInflate();
  24. Log.d("mDebug", "onFinishInflate");
  25. }
  26. @Override
  27. protected void onSizeChanged(int w, int h, int oldw, int oldh) {
  28. // TODO Auto-generated method stub
  29. super.onSizeChanged(w, h, oldw, oldh);
  30. Log.d("mDebug", "onSizeChanged,w="+w+",h="+h+",oldw="+oldw+",oldh="+oldh);
  31. }
  32. }

问题: 构造函数的context为何物,attrs从何处来

看到这篇文章貌似解决了以上问题。 
http://blog.csdn.net/z103594643/article/details/6755017

扩展地址:http://developer.android.com/reference/android/view/View.html

android,view的执行过程onDraw、onSizeChanged,onFinishInflate的更多相关文章

  1. Android View的绘制过程

    首先是view的绘制过程~最主要的分三部分 measure layout draw 看字面意思,计算,布局,画~ android中控件相当于是画在一个无限大的画布上的,那就产生了几个问题 画布无限大, ...

  2. android权限申请执行过程

    弹出的授权对口窗口实际上是一个activity(隐式intent启动上图第二个方块里)(com.android.packageinstaller.permission.ui.Grantpermissi ...

  3. android view 中各函数的执行顺数

    这个就好像是 activity 的生命周期一样,如果我们要使用自定义的 view,那么就很有必要了解一下 view 的那些能够被重写的函数的执行顺序.废话不多讲,以常用的5个函数为例子,见下文: pa ...

  4. Android View 的绘制流程之 Layout 和 Draw 过程详解 (二)

    View 的绘制系列文章: Android View 的绘制流程之 Measure 过程详解 (一) Android View 绘制流程之 DecorView 与 ViewRootImpl 在上一篇  ...

  5. 简单研究Android View绘制三 布局过程

    2015-07-28 17:29:19 这一篇主要看看布局过程 一.布局过程肯定要不可避免的涉及到layout()和onLayout()方法,这两个方法都是定义在View.java中,源码如下: /* ...

  6. android 中view的绘制过程

    view的绘制过程中分别会执行:onMeasure(会多次)计算view的大小,OnLayout(),确定控件的大小和位置 onDraw()绘制view 当Activity获得焦点时,它将被要求绘制自 ...

  7. 《Android内核剖析》读书笔记 第13章 View工作原理【View重绘过程】

    计算视图大小的过程(Measure) 视图大小,准确的来说应该是指视图的布局大小:我们在layout.xml中为每个UI控件设置的layout_width/layout_height两个属性被用来设置 ...

  8. Android中View的绘制过程 onMeasure方法简述 附有自定义View例子

    Android中View的绘制过程 onMeasure方法简述 附有自定义View例子 Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android fr ...

  9. 【转】Android中View的绘制过程 onMeasure方法简述 附有自定义View例子

    Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android framework将会处理绘制过程,Activity只需提供它的布局的根节点. 绘制过程从布 ...

随机推荐

  1. javascript history对象

    window.history.[属性|方法] 0.history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能. 1.属性 2.方法

  2. ubuntu 14.04 安装matlab2015b(破解版),具体软件请访问我的网盘~

    本文章转载自:http://www.cnblogs.com/ttzm/p/5475086.html 1.下载matlab的Unix版本:安装文件放在某目录下(如在Downloads下,则文件的完整路径 ...

  3. Java Web 开发环境快速搭建

    Java Web 开发环境快速搭建 在因某种原因更换开发设备后,可依据此文快速搭建开发环境,恢复工作环境. Java开发环境: Windows 10 (64-bit) Oralce JDK Eclip ...

  4. 《细说PHP》的php语言结构

    6.1流程控制 顺序结构 语句按照出现的先后次序自上而下依次执行 分支结构 先做判断再做选择 6.3.4 特殊的流程控制语句 break语句结束当前for.foreach.while.do-while ...

  5. F#中的自定义隐式转换

    我们知道隐式变换在可控情况下会使代码变得简洁.熟悉C#的都知道C#中可以自定义隐式变换,例如 public class A { private int data; public static impl ...

  6. 6、50道JAVA基础编程练习题跟答案

    50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...

  7. Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    在mac上面安装mysql之后,输入mysql一直报错,可以通过下面的方法解决. mysqld stop mysql.server start   http://stackoverflow.com/q ...

  8. LeetCode OJ 1. Two Sum

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  9. 用CMD开启、关闭软件

    关闭 (正常)  taskkill /IM 1.100.exe 开启 : "路径"

  10. winform/wpf 程序部署

    (1):一些发布方式 ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌.因此,有关ClickOnce的介绍,各位朋 ...