通常的想法是,视图具有所需的宽度和高度,这受两个因素的约束.
第一个约束是附加视图的父视图.这将描述视图的最大宽度和大小.如果视图要求比父视图宽或高,则将限制其测量的高度和宽度,以使这些值不大于父视图的值.一旦包含父视图的宽度和高度约束,这些值(可以是MATCH_PARENT,WRAP_CONTENT或dp值)将转换为测量的宽度和高度.这样可以确保没有任何一个孩子比其父母大.
第二个约束来自视图的同级,换句话说,来自附加到相同布局的其他视图. ViewGroup(布局)将解析视图的宽度和高度,以使其正确显示.这些解析的宽度和高度是您从getWidth()和getHeight()获得的值.
编辑:很抱歉误解您的问题.我已经查看了视图的测量状态的概念,并且只能找到一个记录的状态:MEASURED_STATE_TOO_SMALL.这使我相信它的使用可能非常有限,它的存在主要是为了将来的功能或由自定义Views / ViewGroups使用.
MEASURED_STATE_TOO_SMALL的文档规定以下内容:
Bit of getMeasuredWidthAndState() and getMeasuredWidthAndState() that
indicates the measured size is smaller that the space the view would
like to have.
这使我相信,只要将大于父级宽度和高度的固定dp / px值提供给视图,该位就会被置位,因此视图的宽度和高度将按比例缩小.
如果您设法找到更多状态或有关使用位置的其他信息,请更新问题.祝一切顺利!