首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

View的工作原理

几乎在所有情况下两者相等 Layout过程确定View四个顶点的位置和实际的宽高。 Draw过程确定View的显示,只有draw方法完成后View的内容才会出现在屏幕上。...4.View的工作流程 (1)measure过程 要分情况,如果只是一个view,那么measure就完了。...) 手动调用View的measure方法,通过手动并正确调用View的measure过程后,就可以通过View.getMeasureWidth()方法得到测量后的宽高。...处理,相当于设置了match_parent 2.如果有必要,让View支持padding 继承view的控件,如果不处理padding,那么padding属性不起作用 3.尽量不要在View...中使用Handler,没必要 view有post系列方法 4.View中如果有线程或动画,需要及时停止,参考View#onDetachedFromWindow 5.View带有滑动嵌套情形时

54120

View的工作原理

其中measure用来测量View的宽和高,layout用来确定View在父容器的放置位置,而draw则负责将View绘制在屏幕上,针对perfromTraversals的大致流程,可用下列流程图来表示...(UNSPECIFIED模式是系统内部多次Measure的情况,一般来说,我们不需要关注此模式) View的工作流程 View的工作流程主要是指measure、layout、draw这三大流程...其中measure确定View的测量宽高,layout确定View的最终宽高和四个顶点的位置,而draw则将View绘制到屏幕上。...在View的默认实现中,View的测量宽高和最终宽高是相等的,只不过测量宽高是形成于View的measure过程,而最终宽高形成于View的layout过程,即两者的赋值时机不同,测量宽高稍微早些。...自定义View须知: 1、让View支持wrap_content 2、如果有必要,让你的View支持平padding 3、尽量不要在View中使用Handler,没必要 4、VIew中如果有线程或者动画

40420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    自定义View(九)-View的工作原理- View的layout()和draw()

    前言 上一节我们将View的测量流程理的差不多了,这篇我们来看下View的剩下的2大流程layout(布局)和draw(绘制)。...View树layout绘制流程.png 到此View的绘制也就完成了。下面我们来看下draw(绘制)。...null) { //获取滚动条的设置状态 int state = cache.state; //滚动条不显示时,直接返回,也就是不绘制滚动条...如果你给当前视图View设置了android:fadeScrollbars=”true”属性时,你不滑动,滚动条隐藏,你滑动时,滚动条显示,有代码可以看出,此处是通过改变滚动条的透明度来实现滚动条隐藏和显示的...View绘制6步分析.png 我们在来总结几个关于View绘制相关的知识点: 父类View绘制主要是绘制背景,边框渐变效果,进度条,View具体的内容绘制调用了onDraw方法,通过该方法把View内容的绘制逻辑留给子类去实现

    2.9K20

    安卓 View 的工作原理

    为了更好地自定义 View,还需要掌握 View 的底层工作原理,比如View的测量流程、布局流程以及绘制流程,掌握这几个基本流程后,我们就对 View 的底层更加了解,这样我们就可以做出一个比较完善的自定义...View。...,它经过measure、layout和draw三个过程才能最终将一个View绘制出来,其中measure用来测量View的宽和高,layout用来确定View在父容器中的放置位置,而draw则负责将View...图1 performTraversals的工作流程图 如图1 所示,performTraversals会依次调用performMea-sure、performLayout和performDraw三个方法...下面先看一下MeasureSpec内部的一些常量的定义,通过下面的代码,应该不难理解MeasureSpec的工作原理: public static class MeasureSpec {

    44910

    自定义View(七)-View的工作原理- Activity的布局加载

    在View的工作原理 这一部分我们将对View做全面深入的解析。由于本人是菜鸟,其实无法直接看源码,也都是通过书籍与文章反复阅读,然后才去看的源码。由于怕忘记写成博客。...---- Activity#setContentView 关于View的工作原理,大家可能会问:为什么不直接看View呢?...因为我觉得Activty是呈现应用界面的载体,所有的View都在Acitivity中,并且在理解Activity的启动XML的加载也是一种了解View工作原理的一个很好的入口。...好了废话不多说:翠花~上酸菜(代码): 注:在View的工作原理中涉及到源码为:API=23 以后不再说明 重要的一些源码或是方法较长我会标出在源码中所在行数 activity_main : 工作时间短的小伙伴)来分析。 关于自定义View设计的知识点非常多我觉得也很难掌握,所以利用文章来记录想,希望对大家有些帮助。

    87730

    Android自定义View:为什么自定义View wrap_content不生效?

    Carson带你学Android自定义View文章系列: Carson带你学Android:自定义View基础 Carson带你学Android:一文梳理自定义View工作流程 Carson带你学...问题描述 在使用自定义View时,View宽 / 高的wrap_content属性不起自身应有的作用,而且是起到与match_parent相同作用。...高被设定成刚好适应视图内容的最小尺寸 match_parent:视图的宽/高被设置为充满整个父布局 (在Android API 8之前叫作fill_parent) 其实这里有两个问题: 问题1:wrap_content属性不起自身应有的作用...的大小能刚好包裹子View,子View的大小充满父View的大小。...基础 Carson带你学Android:一文梳理自定义View工作流程 Carson带你学Android:自定义View Measure过程 Carson带你学Android:自定义View Layout

    96621

    View工作原理分析1 - 初识ViewRoot和 DecorView

    如下源码:WindowManagerGlobal root = new ViewRootImpl(view.getContext(), display); root.setView(view, wparams..., panelParentView); View的绘制流程是从 ViewRoot 的performTraversals方法开始的,它经过measure,layout,和draw三个过程才能最终将一个View...绘制出来,其中 measure 用来测量View的宽和高,layout用来确定View在父容器中的放置位置,而draw则负责将View绘制在屏幕上,针对performTraversals的 大致流程,如下图表示...Draw Draw过程则决定了 View的显示,只有 draw方法完成以后,View的内容才能显示到屏幕上,但需要注意的是,应该尽量避免在 onDraw的过程中执行过多的循环操作。...content.getChildAt(0) 最后,DecorView其实是一个 FrameLayout,View层的事件都先经过 DecorView,然后才传递给我们的View.

    51330

    128 天不上班不工作:照样领工资 9.5 万

    和风畅想公司为证明杜某试用期不能胜任岗位工作提交了《录取聘用函》《试用期目标设定表》《工作不胜任数据参考说明》、录音、其他人员工完成的测试用例。...《试用期目标设定表》中载明杜某的主要工作职责是:“1.执行日常测试工作;2.熟悉、掌握业务;3.整理、优化好测试用例;4.性能测试;5.职业技能提升。”...与上述工作职责相对应的衡量标准为:“按期交付,长期bug发现率高于平均水平,遗漏率小于3%;能够胜任车长或备份车长职责,外部干系评价良好;对Case集有整体把握,Case集功能完备、简洁、不冗余并且能适应最新产品...和风畅想公司称《工作不胜任数据参考说明》系杜某的上级主管对其在试用期间的工作评价,但无上级主管签字亦无杜某确认痕迹,该说明中提到杜某存在“工作产出偏低”“组内任务相应偏慢,日常工作积极性偏低”“测试质量低...杜某提交工作数据统计截图、统计数据、自行整理的工作成果、办公软件聊天记录、微信聊天记录,以证明其完成了和风畅想公司安排的工作任务,不存在不能胜任的情况。

    2.2K20

    高级 UI 成长之路 (三) 理解 View 工作原理并带你入自定义 View 门

    前言 该篇分为上下结构,上部分主要讲解 View 的工作原理,下部分主要以案例的形式讲解自定义 View。 ps:该篇文章大部份内容会参考 Android 开发艺术探索。...的 measure, layout,draw 方法以完成 View 的绘制工作。...View 工作流程 View 的工作流程主要是指 measure、layout 、draw 这三个流程,即 测量 -> 布局 -> 绘制,其中 measure 确定 View 测量宽高,layout 确定...View 工作原理等知识,有了这些知识之后再来学习自定义 View 那将面对复杂的 UI 效果也能一一应对了,下面我们就来认识自定义 View 在该小节末尾也会给出实际例子,以供大家参考。...自定义 View 分类 自定义 View 的分类标准不唯一,这里则把它分为四大类,请看下面: 继承 View 重写 onDraw 方法 这个方法主要用于实现一些不规则的效果,即这种效果不方便通过布局的组合方式达到

    83440
    领券