【Android】【ViewGroup】MeasureSpec工作原理

来源:互联网 发布:淘口令 淘宝优惠券查询 编辑:程序博客网 时间:2024/04/30 13:30

MeasureSpec代表了一个32位int值,高2位代表SpecMode,低30位代表SpecSize

measureSpec: return (size & ~MODE_MASK) | (mode & MODE_MASK);
size: (measureSpec & ~MODE_MASK)
mode: (measureSpec & MODE_MASK)

childSize: 1010
MODE_MASK:1100 0000 0000 0000
AT_MOST : 1000 0000 0000 0000

measureSpec:
1010&~MODE_MASK |AT_MOST&MODE_MASK
1010&0011 1111 1111 1111| 1000 0000 0000 0000
0000 0000 0000 1010 | 1000 0000 0000 0000
1000 0000 0000 1010

size:
1000 0000 0000 1010 & 0011 1111 1111 1111
0000 0000 0000 1010

mode:
1000 0000 0000 1010& 1100 0000 0000 0000
1000 0000 0000 0000

0 0