自定义View(一)

作者: ingot_金果 | 来源:发表于2016-07-25 19:28 被阅读298次
自定义View(一)

每次在GitHub上看到一些酷炫的控件,心中就会忍不住惊叹,也会发出呐喊,有一天我也要写出这么酷炫的控件。为了当艺术家,必然要学习自定义View。

View的绘制流程是从ViewRoot的performTraversals方法开始的,它经过measure、layout和draw三个过程才能最终将一个View绘制出来,其中measure用来测量View的宽和高,layout用来确定View在父容器中的放置位置,而draw则负责将View绘制在屏幕上。

MeasureSpec通过将SpecMode和SpecSize打包成一个int值来避免过多的对象内存分配,为了方便操作,其提供了打包和解包的方法。SpecMode有三类

  • UNSPECIFIED(不指定模式)
    值为 1073741824
    想多大多大,一般用于系统内部
  • EXACTLY(精确模式)
    父View告诉你,你应该多少大小.当XMl里的宽高属性为具体值或者为match_parent,为EXACTLY.
  • AT_MOST(至多模式)
    AT_MOST值为:-2147483648
    子控件大小最多为多少,在xml里配置的属性为wrap_content的时候.如果自定义View要支持wrap_content必须重写onMeasure,否则大小可能为0

接下去会发表自定义View的实战代码,终有一天成为艺术家写出酷炫的View.

相关文章

  • 自定义View5---完整的自定义View

    移步自定义View系列 1.自定义view的分类自定义单一view(不含子view)继承view继承特定view如...

  • Android View(转)

    自定义View的原理自定义View基础 - 最易懂的自定义View原理系列自定义View Measure过程 - ...

  • 自定义View系列

    自定义View1---知识储备自定义View2---View Measure过程自定义View3---View L...

  • 自定义View

    自定义View系列文章 自定义View view向上滚动

  • 自定义View(一) 自定义View的概述

    不怕跌倒,所以飞翔 自定义View概述 1.自定义View分类 自定义View 直接继承View主要是绘制 自定义...

  • Android自定义View

    Android自定义View 参考:从此再有不愁自定义View——Android自定义view详解android ...

  • 通过圆形载入View了解自定义View

    这是自定义View的第一篇文章,通过制作简单的自定义View来了解自定义View的流程。自定义View是Andro...

  • 自定义view

    Android自定义View 为什么要自定义View自定义View的基本方法 自定义View的最基本的三个方法分别...

  • 自定义View理论

    自定义View类型 1. 自定义View 在没有现成的View,需要自己实现的时候,就使用自定义View,一般继承...

  • Android 之 自定义View全解

    本文主要有以下内容: 自定义View的分类 自定义View的注意事项 自定义View的不同实现 自定义View使其...

网友评论

    本文标题:自定义View(一)

    本文链接:https://www.haomeiwen.com/subject/gitnjttx.html