当前位置: 首页 > news >正文

ui设计培训班哪家好成都网站优化费用

ui设计培训班哪家好,成都网站优化费用,陕西建设工程信息网官网,seo行业岗位有哪些1. MeasureSpec类 MeasureSpec用来计算子视图的大小#xff0c;有三种类型#xff0c;UNSPECIFIED、EXACTLY和AT_MOST。 UNSPECIFIED表示未定义#xff0c;即父控件未做限制#xff0c;可以为任何值#xff0c;一般设置为0。EXACTLY表示实际值#xff0c;即父容器已经指…1. MeasureSpec类 MeasureSpec用来计算子视图的大小有三种类型UNSPECIFIED、EXACTLY和AT_MOST。 UNSPECIFIED表示未定义即父控件未做限制可以为任何值一般设置为0。EXACTLY表示实际值即父容器已经指定了具体的值。AT_MOST表示父容器提供了最大值但子控件可以选择自己的范围。 使用静态方法来获取实际的mode和size public static int getMode(int measureSpec) public static int getSize(int measureSpec)2. View的measure方法 measure(int, int)方法计算高宽调用onMeasure(int, int)方法计算或setMeasuredDimensionRaw(int, int)方法设置。 public final void measure(int widthMeasureSpec, int heightMeasureSpec) {... ...int cacheIndex forceLayout ? -1 : mMeasureCache.indexOfKey(key);if (cacheIndex 0 || sIgnoreMeasureCache) {// measure ourselves, this should set the measured dimension flag backonMeasure(widthMeasureSpec, heightMeasureSpec);mPrivateFlags3 ~PFLAG3_MEASURE_NEEDED_BEFORE_LAYOUT;} else {long value mMeasureCache.valueAt(cacheIndex);// Casting a long to int drops the high 32 bits, no mask neededsetMeasuredDimensionRaw((int) (value 32), (int) value);mPrivateFlags3 | PFLAG3_MEASURE_NEEDED_BEFORE_LAYOUT;}... ... }onMeasure(int, int)方法调用setMeasuredDimension(int, int)方法来设置实际的宽和高getDefaultSize(int, int)方法获取默认的宽高。 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec),getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec)); }在getDefaultSize(int, int)方法中使用MeasureSpec来获取mode和size并返回计算后的值。当mode为UNSPECIFIED时返回默认值否则返回建议值。 public static int getDefaultSize(int size, int measureSpec) {int result size;int specMode MeasureSpec.getMode(measureSpec);int specSize MeasureSpec.getSize(measureSpec);switch (specMode) {case MeasureSpec.UNSPECIFIED:result size;break;case MeasureSpec.AT_MOST:case MeasureSpec.EXACTLY:result specSize;break;}return result; }setMeasuredDimension(int, int)方法同样调用setMeasuredDimensionRaw(int, int)方法设置宽高 protected final void setMeasuredDimension(int measuredWidth, int measuredHeight) {... ...setMeasuredDimensionRaw(measuredWidth, measuredHeight); }3. ViewGroup的measureChild方法 ViewGroup除了需要计算自身的宽高以外还要计算子控件的宽高系统提供了measureChildren(int, int)、measureChild(View, int, int)和getChildMeasureSpec(int, int, int)来支持一般的操作。 measureChildren(int, int)方法只要child的Visibility不是GONE就计算child的宽高调用measureChild方法 protected void measureChildren(int widthMeasureSpec, int heightMeasureSpec) {final int size mChildrenCount;final View[] children mChildren;for (int i 0; i size; i) {final View child children[i];if ((child.mViewFlags VISIBILITY_MASK) ! GONE) {measureChild(child, widthMeasureSpec, heightMeasureSpec);}} }measureChild(View, int, int)方法使用getChildMeasureSpec(int, int, int)方法获得宽高最后调用View.measure(int, int)方法设置。 protected void measureChild(View child, int parentWidthMeasureSpec,int parentHeightMeasureSpec) {final LayoutParams lp child.getLayoutParams();final int childWidthMeasureSpec getChildMeasureSpec(parentWidthMeasureSpec,mPaddingLeft mPaddingRight, lp.width);final int childHeightMeasureSpec getChildMeasureSpec(parentHeightMeasureSpec,mPaddingTop mPaddingBottom, lp.height);child.measure(childWidthMeasureSpec, childHeightMeasureSpec); }getChildMeasureSpec(int, int, int)方法根据ViewGroup的mode分为三种情况如果childDimension大于0则直接指定。 public static int getChildMeasureSpec(int spec, int padding, int childDimension) {int specMode MeasureSpec.getMode(spec);int specSize MeasureSpec.getSize(spec);int size Math.max(0, specSize - padding);int resultSize 0;int resultMode 0;switch (specMode) {// Parent has imposed an exact size on uscase MeasureSpec.EXACTLY:if (childDimension 0) {resultSize childDimension;resultMode MeasureSpec.EXACTLY;} else if (childDimension LayoutParams.MATCH_PARENT) {// Child wants to be our size. So be it.resultSize size;resultMode MeasureSpec.EXACTLY;} else if (childDimension LayoutParams.WRAP_CONTENT) {// Child wants to determine its own size. It cant be// bigger than us.resultSize size;resultMode MeasureSpec.AT_MOST;}break;// Parent has imposed a maximum size on uscase MeasureSpec.AT_MOST:if (childDimension 0) {// Child wants a specific size... so be itresultSize childDimension;resultMode MeasureSpec.EXACTLY;} else if (childDimension LayoutParams.MATCH_PARENT) {// Child wants to be our size, but our size is not fixed.// Constrain child to not be bigger than us.resultSize size;resultMode MeasureSpec.AT_MOST;} else if (childDimension LayoutParams.WRAP_CONTENT) {// Child wants to determine its own size. It cant be// bigger than us.resultSize size;resultMode MeasureSpec.AT_MOST;}break;// Parent asked to see how big we want to becase MeasureSpec.UNSPECIFIED:if (childDimension 0) {// Child wants a specific size... let him have itresultSize childDimension;resultMode MeasureSpec.EXACTLY;} else if (childDimension LayoutParams.MATCH_PARENT) {// Child wants to be our size... find out how big it should// beresultSize View.sUseZeroUnspecifiedMeasureSpec ? 0 : size;resultMode MeasureSpec.UNSPECIFIED;} else if (childDimension LayoutParams.WRAP_CONTENT) {// Child wants to determine its own size.... find out how// big it should beresultSize View.sUseZeroUnspecifiedMeasureSpec ? 0 : size;resultMode MeasureSpec.UNSPECIFIED;}break;}//noinspection ResourceTypereturn MeasureSpec.makeMeasureSpec(resultSize, resultMode); }相关文章 Android 自定义流式布局 Android measure方法详解
http://www.dnsts.com.cn/news/250634.html

相关文章:

  • 广告企业网站源码iis7 网站无法显示该页面
  • 家里的电脑怎样做网站赚钱网站建设公司营销推广
  • 英文商城网站国外优秀个人网站欣赏
  • 杭州设计制作网站seo优化是做什么的
  • 保定企业建网站wordpress导航模板
  • 怎么在年报网站做简易注销怎么添加wordpress模板文件
  • 点击即玩的小游戏网站seo关键词查询排名软件
  • 电子政务网站建设要求北京市城乡建设部网站首页
  • 网站开发所需开发环境湖南响应式网站推荐
  • 高淳城乡建设局网站金融棋牌网站建设
  • 建立了公司网站电影网站推广
  • 电子商务网站平台有哪些电子商务平台定制开发
  • 成都网站建设scdzks网页设计网站建设招聘
  • 门户网站系统业务流程图网站建设电脑维修数据恢复
  • 陇南市响应式网站建设网站备案 在那给网站备案
  • 中原区快速建站公司电话搜索引擎网站推广定义
  • 网站seo技巧洛阳理工学院教务管理系统
  • 网站月流量5gc mvc 网站开发进阶之路
  • 建立网站目的wordpress 后台 500
  • 东营市垦利区胜坨填建设站的网站wordpress程序员主题
  • 企业做网站流程计算机专业学校全国排名
  • 手机网站插件代码茶叶网站建设公司
  • 济南网站建设公司-远大云.鞍山抖音seo新闻
  • 网站建设怎么分析市场北京做冷冻牛羊肉的网站
  • 做外贸需要哪些网站好动词做的网站能行吗
  • 常州公司网站模板建站本网站正在建设中
  • 怎么做有声小说网站播音员关于网站开发的期刊
  • 北湖区网站建设专业做网站的赢利点
  • 怎样更新网站文章企业网站模板下载哪家好
  • 南昌p2p网站专业建设网站开发手册