android自定义view之测量父view和迭代测量子view
来源:互联网 发布:老调网新域名 编辑:程序博客网 时间:2024/04/28 03:54
@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int resWidth = 0; int resHeight = 0; int width = MeasureSpec.getSize(widthMeasureSpec); int widthMode = MeasureSpec.getMode(widthMeasureSpec); int height = MeasureSpec.getSize(heightMeasureSpec); int heightMode = MeasureSpec.getMode(heightMeasureSpec); if (widthMode != MeasureSpec.EXACTLY || heightMode != MeasureSpec.EXACTLY) { //如果不是精确值对应的处理 resWidth = getSuggestedMinimumWidth();//取背景图的宽度 resWidth = resWidth == 0 ? getDefaultWidht() : resWidth; resHeight = getSuggestedMinimumHeight(); resHeight = resHeight == 0 ? getDefaultWidht() : resHeight; } else { //如果是精确值,则取宽和高中值小的 resWidth = resHeight = Math.min(width, height); } setMeasuredDimension(resWidth, resHeight); //获得半径 mRadius = Math.max(getMeasuredWidth(), getMeasuredHeight()); //menu item个数 final int childCount = getChildCount(); //menu item 尺寸 int childSize = (int) (mRadius * RADIO_DEFAULT_CHILD_DIMENSION); int childMode = MeasureSpec.EXACTLY; //迭代测量 for (int i = 0; i < childCount; i++) { final View child = getChildAt(i); if (child.getVisibility() == GONE) { continue; } //测量menu item int makeMeasureSpec = -1; if (child.getId() == R.id.id_circle_menu_item_center) { makeMeasureSpec = MeasureSpec.makeMeasureSpec((int) (mRadius * RADIO_DEFAULT_CENTERITEM_DIMENSION), childMode); } else { makeMeasureSpec = MeasureSpec.makeMeasureSpec(childSize, childMode); } child.measure(makeMeasureSpec, makeMeasureSpec); } mPadding = (int) (RADIO_PADDING_LAYOUT * mRadius);}
阅读全文
0 0
- android自定义view之测量父view和迭代测量子view
- Android自定义View 之 View的测量
- Android View之测量
- Android自定义View之绘制、测量
- 【Android自定义View】测量和绘制浅析
- Android自定义View(一) View的测量
- Android 自定义View基础-View的测量
- android 自定义View之View的测量(onMeasure()方法)
- (转)Android自定义View 之 View的测量
- android 自定义View之View的测量(onMeasure()方法)
- Android GUI之View测量
- android之view测量总结
- Android之View的测量
- 自定义View中的测量
- 自定义View的测量
- Android View的测量
- Android View 如何测量
- Android View的测量
- 数据库分组和分组函数
- Python之路,Day1
- java网络编程学习(二)
- 记录 在这个msdn的资源里面可以看到如下几个内容可供学习研究
- Linux sysfs文件系统
- android自定义view之测量父view和迭代测量子view
- 377. Combination Sum IV
- PF_RING 6.4编译错误 libusb libdbus usb dbus
- 深度神经网络的权重初始化
- MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
- 遇到的小知识点(不断更新)
- Sentiment Analysis情感分析工具的使用(一):SentiStrength
- 第12周作业2(LeetCoed26)
- 欢迎使用CSDN-markdown编辑器