Android???TextView???????????
???????????? ???????[ 2013/5/16 10:28:29 ] ????????
????????????????λ????????WindowManagerService?????????????????????????е??????У??????????????????ɡ???????????????????е?????????????????????????????????????????????????????Щ?????????????UI???????????????????????????????????н????????????????????????????????????У???????????????????????????????
????????Android???????????????????????????????д?????????з????????????д????????????TextView?????????Щ?????????????Button??EditText??CheckBox????????????????????????????????????????????????????????????????Щ??????????????????в??????????????????????????????????TextView?????????????????п????????????????????????????????????TextView????????
?????????????????????????????????????????????????????????????????????????????????????????????????л??????????UI????????????????????????н??????????????????????????TextView??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????о?????
?????????Android??ó?????(Activity)??????????????????????е???????????????ó????????Activity????????????PhoneWindow???????DecorView??????????ViewRoot????????????????У?PhoneWindow???????????????????DecorView?????????????????????????ViewRoot?????????????WindowManagerService?????????????????????????????????????????????????????View???????????????ν??????????γ??????????UI??????????????????????????TextView?????????????????????????????????DecorView???????????1?????
?????1 ????????????DecorView??TextView???????
?????1????????????????TextView?????Activity?????????????DecorView??TextView?????????????п????????
????1. ???????????????ViewRoot??????????????TextView????;
????2. DecorView???????????????????????ViewGroup???????????ViewGroup?????????View?????????;
????3. TextView???????????????????????????View??
???????????????????1?????Activity???????????????TextView?????UI??????????ü????????????
?????. TextView?????UI??????
?????????Android??ó?????(Activity)?????(Measure)??????(Layout)?????(Draw)??????????????????Activity?????UI??????????????????????????????????????
????1. ????
???????????????????????????????С?????п???????????д????View????????onMeasure??
????TextView?????????onMeasure??????????????
????[java] view plaincopyprint?
????public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {
????......
????@Override
????protected void onMeasure(int widthMeasureSpec?? int heightMeasureSpec) {
????int widthMode = MeasureSpec.getMode(widthMeasureSpec);
????int heightMode = MeasureSpec.getMode(heightMeasureSpec);
????int widthSize = MeasureSpec.getSize(widthMeasureSpec);
????int heightSize = MeasureSpec.getSize(heightMeasureSpec);
????int width;
????int height;
????//????TextView??????????
????......
????setMeasuredDimension(width?? height);
????}
????......
????}
????public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {
????......
????@Override
????protected void onMeasure(int widthMeasureSpec?? int heightMeasureSpec) {
????int widthMode = MeasureSpec.getMode(widthMeasureSpec);
????int heightMode = MeasureSpec.getMode(heightMeasureSpec);
????int widthSize = MeasureSpec.getSize(widthMeasureSpec);
????int heightSize = MeasureSpec.getSize(heightMeasureSpec);
????int width;
????int height;
????//????TextView??????????
????......
????setMeasuredDimension(width?? height);
????}
????......
????}
????????????????????frameworks/base/core/java/android/widget/TextView.java?С?
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11