java - MeasureSpec.getMode() 如何从整数值中提取众数?

标签 java android view onmeasure

我正在学习《专业 Android 4 应用程序开发》的第 4 章,它告诉我尺寸值和模式都是从传递给 onMeasure() 方法的 widthMeasureSpec 和 heightMeasureSpec 值中提取的的自定义 View 。那些不是必须是整数基元以外的其他数据结构才能实现此目的吗?这些整数的编码方式是否可以手动覆盖它们的值?

最佳答案

模式可以是 EXACTLY、AT_MOST 或 UNSPECIFIED。因此从技术上讲,只需要两位来存储模式。如果你查看它们的值,就会发现 EXACTLY 是 0x80000000,AT_MOST 是 0x40000000,UNSPECIFIED 是 0x00000000。他们获取 int 的前两位,并将它们与大小进行“或”运算以获得 MeasureSpec。这可能是早期 Android 的遗留问题,当时设备实际上没有太多内存,因此他们试图尽可能节省内存。

关于java - MeasureSpec.getMode() 如何从整数值中提取众数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32663864/

相关文章:

java - 将数组存储到 ArrayList 而不分配另一个数组?

java - 构造函数中声明的变量是否会保留在创建的对象中

java - 有没有办法禁用 "keyboard-dismiss"按钮?

java - 未显示所需的 map

Android:如何将 'view' 转换为 'textview'?

java - 在 GUI 更新之间造成延迟

java - 如何获取@DiscriminatorColumn()的值?

android - getViewByID 为 Listview 返回 null

java - 如何使对话框中的整个 View 可点击?

java - 数据绑定(bind);查看标签不正确,Android