android view 中各函数的执行顺数

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

 1 package com.example.pulltorefreshtest;
 2 
 3 import android.content.Context;
 4 import android.graphics.Canvas;
 5 import android.util.AttributeSet;
 6 import android.util.Log;
 7 import android.view.View;
 8 
 9 /**
10  * Created by Administrator on 2015/7/12.
11  */
12 public class testView extends View {
13     public testView(Context context, AttributeSet attrs) {
14         super(context, attrs);
15     }
16 
17     @Override
18     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
19         Log.d("------","---onMeasure");
20         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
21     }
22 
23     @Override
24     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
25         Log.d("------","---onLayout");
26         super.onLayout(changed, left, top, right, bottom);
27     }
28 
29     @Override
30     protected void onFinishInflate() {
31         Log.d("------","---onFinanshInflate");
32         super.onFinishInflate();
33     }
34 
35     @Override
36     protected void onDraw(Canvas canvas) {
37         Log.d("------","---onDraw");
38         super.onDraw(canvas);
39     }
40 
41     @Override
42     protected void onSizeChanged(int w, int h, int oldw, int oldh) {
43         Log.d("------","---onSizeChanged");
44         super.onSizeChanged(w, h, oldw, oldh);
45     }
46 }

运行结果:

07-12 13:44:45.413  23734-23734/? D/------﹕ ---onFinanshInflate
07-12 13:44:45.443  23734-23734/? D/------﹕ ---onMeasure
07-12 13:44:45.493  23734-23734/? D/------﹕ ---onSizeChanged
07-12 13:44:45.493  23734-23734/? D/------﹕ ---onLayout
07-12 13:44:45.503  23734-23734/? D/------﹕ ---onMeasure
07-12 13:44:45.503  23734-23734/? D/------﹕ ---onLayout
07-12 13:44:45.503  23734-23734/? D/------﹕ ---onDraw

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏androidBlog

Android打造不一样的新手引导页面(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

341
来自专栏Android常用基础

自定义View(八)-View的工作原理- View的measure

从上一篇中。同Activity的布局加载了解了整个View树加载的流程。最后是通过View的三大流程来实现布局的显示的。那么我们这篇来讲下布局的三大流程之一--...

661
来自专栏肖蕾的博客

打造一个无数据显示无数据提示信息的ListView

923
来自专栏吴小龙同學

Android CustomView

View工作流程 View工作流程主要指measure、layout、draw这三个流程,即测量、布局和绘制,其中measure确定View的自身的宽高,lay...

28611
来自专栏Android中高级开发

Android开发之漫漫长途 番外篇——自定义View的各种姿势1

该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列。该系列引用了《Android开发艺术探索...

791
来自专栏向治洪

android自定义view实现progressbar的效果

一键清理是很多Launcher都会带有的功能,其效果也比较美观。实现方式也许有很多中,其中常见的是使用图片drawable来完成的,具体可以参考这篇文章:模仿实...

2485
来自专栏青蛙要fly的专栏

Android技能树 — View小结

这次是相对View做个小结,主要是View的工作原理,绘制流程等。为什么要总结这块,因为平时自定义View的情况多多少少都会遇到,如果能深刻了解这块知识,对自定...

1021
来自专栏吴小龙同學

LinearGradient实现文字一闪一闪

效果预览 ? 实现方法 新建LinearGradientTextView,继承TextView,重写onSizeChanged和onDraw。 1 2 3 4...

3357
来自专栏androidBlog

自定义Drawable实现圆角图片和圆形图片

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

372
来自专栏吴小龙同學

Android 画笔Paint和画布Canvas

先了解画笔Paint和画布Canvas一些基本方法,然后学习画笔特效处理的高级属性PorterDuffXfermode、Shader、PathEffect,并...

3496

扫码关注云+社区