我正在使用专业Android 4应用程序开发的第4章,它告诉我,从传递给onMeasure()方法的widthMeasureSpec和heightMeasureSpec值中提取了一个大小值和模式自定义视图。那些不必是一个其他数据结构而不是整数原语才能实现这一目标吗?这些整数是否以可以手动覆盖其值的方式编码?
答案 0 :(得分:1)
该模式为EXACTLY,AT_MOST或UNSPECIFIED。因此从技术上讲,只需要两位来存储模式。如果查看它们的值,则完全为0x80000000,AT_MOST为0x40000000,且缺省为0x00000000。它们占据int的前两位,并使用大小对它们进行ORing以获得MeasureSpec。这可能是早期Android的延续,当设备真的没有大量内存时,所以他们试图在任何可能的地方保存。