随笔分类 - view绘制
摘要:1.@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int measureSp
阅读全文
摘要:LayoutInflater 直译为 布局填充器,它是用来创建布局视图的,常用 inflate() 将一个 xml 布局文件转换成一个 View,下面先介绍下获取 LayoutInflater 的三种方式 和 创建 View 的两种方式。 实获取 LayoutInflater 的三种方式 Layou
阅读全文
摘要:1.onMeasure() 在这个函数中,ViewGroup会接受childView的请求的大小,然后通过childView的 measure(newWidthMeasureSpec, heightMeasureSpec)函数存储到childView中,以便childView的getMeasured
阅读全文
摘要:上一篇文章我们了解了View的onMeasure,那么今天我们继续来学习Android View绘制三部曲的第二步,onLayout,布局。 ViewRootImpl#performLayout 这个方法主要的作用就是调用了host.layout,并把已经测绘好的宽高传计算成上下左右递过去,host
阅读全文
摘要:上一篇文章我们了解了View的onLayout,那么今天我们来学习Android View绘制三部曲的最后一步,onDraw,绘制。 ViewRootImpl#performDraw performDraw主要的作用是调用ViewRootImpl#draw方法,并传递一个mFullRedrawNee
阅读全文
摘要:今天主要学习记录一下Android View绘制三部曲的第一步,onMeasure,测量。 起源 在Activity中,所有的View都是DecorView的子View,然后DecorView又是被ViewRootImpl所控制,当Activity显示的时候,ViewRootImpl的perform
阅读全文
摘要:分析View setContentView 首先我们直接在Android Studio中找到一个Activity(请注意,本文分析的是Activity,如果你看的是AppCompatActivity,实际代码会有出入),然后找到setContent方法然后点进去,我们可以看到 然后查找getWind
阅读全文
摘要:如果说要按类型来划分的话,自定义View的实现方式大概可以分为三种,自绘控件、组合控件、以及继承控件。那么下面我们就来依次学习一下,每种方式分别是如何自定义View的。 一、自绘控件 自绘控件的意思就是,这个View上所展现的内容全部都是我们自己绘制出来的。绘制的代码是写在onDraw()方法中的
阅读全文
摘要:大家在平时使用View的时候都会发现它是有状态的,比如说有一个按钮,普通状态下是一种效果,但是当手指按下的时候就会变成另外一种效果,这样才会给人产生一种点击了按钮的感觉。当然了,这种效果相信几乎所有的Android程序员都知道该如何实现,但是我们既然是深入了解View,那么自然也应该知道它背后的实现
阅读全文
摘要:相信接触Android久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用于加载布局的。而刚接触Android的朋友可能对LayoutInflater不怎么熟悉,因为加载布局的任务通常都是在Activity中调用setContentView()方法来完成的。其实setCont
阅读全文
摘要:每一个视图的绘制过程都必须经历三个最主要的阶段,即onMeasure()、onLayout()和onDraw(),下面我们逐个对这三个阶段展开进行探讨。 一. onMeasure() measure是测量的意思,那么onMeasure()方法顾名思义就是用于测量视图的大小的。View系统的绘制流程会
阅读全文

浙公网安备 33010602011771号