MeasureSpec学习

在自定义View和ViewGroup的时候,我们经常会遇到int型的MeasureSpec来表示一个组件的大小,这个变量里面不仅有组件的尺寸大小,还有大小的模式。

这个大小的模式,有点难以理解。在系统中组件的大小模式有三种:

1.精确模式(MeasureSpec.EXACTLY)

在这种模式下,尺寸的值是多少,那么这个组件的长或宽就是多少。

2.最大模式(MeasureSpec.AT_MOST)

这个也就是父组件,能够给出的最大的空间,当前组件的长或宽最大只能为这么大,当然也可以比这个小。

3.未指定模式(MeasureSpec.UNSPECIFIED)

MeasureSpec.EXACTLY:当我们将控件的layout_width或layout_height指定为具体数值时如andorid:layout_width="50dip",或者为FILL_PARENT是,都是控件大小已经确定的情况,都是精确尺寸。

MeasureSpec.AT_MOST是最大尺寸,当控件的layout_width或layout_height指定为WRAP_CONTENT时,控件大小一般随着控件的子空间或内容进行变化,此时控件尺寸只要不超过父控件允许的最大尺寸即可。因此,此时的mode是AT_MOST,size给出了父控件允许的最大尺寸。

MeasureSpec.UNSPECIFIED是未指定尺寸,这种情况不多,一般都是父控件是AdapterView,通过measure方法传入的模式。

时间: 2024-10-10 16:13:51

MeasureSpec学习的相关文章

Android——MeasureSpec学习 - 转

原文地址:http://blog.csdn.net/yuhailong626/article/details/20639217 在自定义View和ViewGroup的时候,我们经常会遇到int型的MeasureSpec来表示一个组件的大小,这个变量里面不仅有组件的尺寸大小,还有大小的模式. 这个大小的模式,有点难以理解.在系统中组件的大小模式有三种: 1.精确模式(MeasureSpec.EXACTLY) 在这种模式下,尺寸的值是多少,那么这个组件的长或宽就是多少. 2.最大模式(Measure

Android-View的绘制源码学习总结

##前言 算是第一篇正式的github博文,回顾了一下之前看过的view源码解析,做一个对目前为止View学习小的总结. 我觉得对于源码的解析和学习,把所有流程记下来意义并不是很大,最关键的是: 1.知道基本作用和用法2.大概了解整个流程和实现方法3.了解里面可扩展的地方在哪,更灵活地使用4.整个源码设计和细节有没有什么亮点值得参考和学习5.源码设计的思路 这也是写这篇文章的目的所在. ##加载布局 ####LayoutInflater http://www.cnblogs.com/qlky/p

Android学习笔记之如何使用圆形菜单实现旋转效果...

PS:最近忙于项目的开发,一直都没有去写博客,是时候整理整理自己在其中学到的东西了... 学习内容: 1.使用圆形菜单并实现旋转效果..     Android的圆形菜单我也是最近才接触到,由于在界面中确实是使用到了,因此就去学习了一下圆形菜单的使用,并且实现菜单的旋转效果,类似于摩天轮那样的效果,个人感觉还是蛮不错的,就是在实现的过程中有点麻烦...通过动态加载的方式,使用ViewGroup来实现了这个过程...个人感觉是一个蛮复杂的过程,最后附上源码...上面先附上效果图,其实这个图给人的感

我的Android 4 学习系列之创建用户基本界面

目录 使用视图和布局 理解Fragment 优化布局 创建分辨率无关的用户界面 扩展.分组.创建和使用视图 使用适配器将数据绑定到视图 使用视图和布局 1. Android UI 几个基本概念 视图: 所有可视界面的元素(通常称为控件或者小组件)的基类.所有的UI控件(包括布局类)都是由 View 派生而来的. 视图组:视图类的扩展,可以包含多个子视图.通过扩展ViewGroup类,可以创建由多个相互连接的子视图组成复合控件:还可以通过扩展ViewGroup类来提供布局管理器,以帮助在Aciti

Android学习之自定义view详解

本文和大家分享的主要是android自定义view相关内容,一起来看看吧,希望对大家学习android有所帮助. 1.自定义View的属性 在 res/values/ 下建立一个 attrs.xml ,在里面定义属性和声明整个样式. <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="titleText" format="string

一起来学习Android自定义控件1

概述 Android已经为我们提供了大量的View供我们使用,但是可能有时候这些组件不能满足我们的需求,这时候就需要自定义控件了.自定义控件对于初学者总是感觉是一种复杂的技术.因为里面涉及到的知识点会比较多.但是任何复杂的技术后面都是一点点简单知识的积累.通过对自定义控件的学习去可以更深入的掌握android的相关知识点,所以学习android自定义控件是很有必要的.记得以前学习总是想着去先理解很多知识点,然后再来学着自定义控件,但是每次写自定义控件的时候总是不知道从哪里下手啊.后来在学习的过程

Android自定义View学习笔记04

Android自定义View学习笔记04 好长时间没有写相关的博客了,前几周在帮学姐做毕设,所以博客方面有些耽误.过程中写了一个类似wp的磁贴的view,想再写个配套的layout,所以昨天看了一下自定义viewGroup的相关知识-晚上睡觉想了一下可行性不是很高-代码量还不如直接自己在xml上写来得快,速度上也是个问题.今天看了一下张鸿洋老师的Android 自定义View (三) 圆环交替 等待效果这篇博文,再加上前一段时间看到的一幅图,结合之前写的一个圆形imageView的实现博文And

最近整理的Android学习笔记

今天记录一下这段时期学习android的笔记,这些笔记比较凌乱,但总归是有用的,以后什么时候有用,可以直接查询来使用. Android沉浸式状态栏 如果想要我们的应用打开以后和状态栏的颜色保持一致,或者是我们自己定义的颜色,可以这样来做: 布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/

Android自定义view学习笔记02

Android自定义view学习笔记02 本文代码来自于张鸿洋老师的博客之Android 自定义View (二) 进阶 学习笔记,对代码进行些许修改,并补充一些在coding过程中遇到的问题.学习的新东西. 相关代码 //CustomImageView.java package mmrx.com.myuserdefinedview.textview; import android.content.Context; import android.content.res.TypedArray; im