• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            xiaoguozi's Blog
            Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習慣原本生活的人不容易改變,就算現(xiàn)狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預料,人們需要更細心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····
            android的布局分兩個階段,先measure()后requestLayout(),
            一個MeasureSpec封裝了父布局傳給子布局的布局要求。每個MeasureSpec代表了一個寬度或高度的要求。一個MeasureSpec包含一個尺寸和模式。
            MeasureSpec的三種模式:
            UNSPECIFIED:父布局沒有給子布局任何限制,子布局可以任意大小。
            EXACTLY:父布局決定子布局的確切大小。不論子布局多大,它都必須限制在這個界限里。
            AT_MOST:子布局可以根據(jù)自己的大小選擇任意大小。
            @Override
            protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int measuredHeight = measureHeight(heightMeasureSpec);
            int measuredWidth = measureWidth(widthMeasureSpec);
            setMeasuredDimension(measuredHeight, measuredWidth);
            //final DisplayMetrics metrics = getResources().getDisplayMetrics();
            //setMeasuredDimension(mBitmap.getScaledWidth(metrics),mBitmap.getScaledHeight(metrics));
            }
            private int measureHeight(int measureSpec) {
            int specMode = MeasureSpec.getMode(measureSpec);
            int specSize = MeasureSpec.getSize(measureSpec);
            int result = 500;
            if (specMode == MeasureSpec.AT_MOST)
            {
            result = specSize;
            }
            else if (specMode == MeasureSpec.EXACTLY)
            {
            result = specSize;
            }
            return result;
            }
            private int measureWidth(int measureSpec) {
            int specMode = MeasureSpec.getMode(measureSpec);
            int specSize = MeasureSpec.getSize(measureSpec);
            int result = 500;
            if (specMode == MeasureSpec.AT_MOST)
            {
            result = specSize;
            }
            else if (specMode == MeasureSpec.EXACTLY)
            {
            result = specSize;
            }
            return result;
            }
            Creation
            Constructors
            onFinishInflate() 當View和它的所有子對象從XML中導入之后,調(diào)用此方法
            Layout
            onMeasure(int, int) View會調(diào)用此方法,來確認自己及所有子對象的大小
            onLayout(boolean, int, int, int, int, int, int) 當View要為所有子對象分配大小和位置時,調(diào)用此方法
            onSizeChanged(int, int, int, int) 當View大小改變時,調(diào)用此方法
            Drawing
            onDraw(Canvas) 當View要繪制它的內(nèi)容時,調(diào)用此方法
            Event processing
            onKeyDown(int, KeyEvent) 當一個新的按鍵事件發(fā)生時,調(diào)用此方法
            onKeyUp(int, KeyEvent) 當一個按鍵釋放事件發(fā)生時,調(diào)用此方法
            onMotionEvent(MotionEvent) 當一個動作事件(如觸摸)發(fā)生時,調(diào)用此方法
            Focus
            onFocusChanged(boolean, int) 當View獲得或失去焦點時,調(diào)用此方法
            Attaching
            onAttachedToWindow() 當View附加到一個窗體上時,調(diào)用此方法
            onDetachedFromWindow() 當View離開它的窗體時,調(diào)用此方法
            當你為一個 activty 添加一個可見的 view, 并且運行這個activty時,android通常情況下會自動按照下列順序來觸發(fā)view的相關事件
            onAttachedToWindow
            onMeasure
            onSizeChanged
            onLayout
            onDraw
            posted on 2012-07-03 19:12 小果子 閱讀(240) 評論(0)  編輯 收藏 引用 所屬分類: Android & Ios
            97久久精品人人澡人人爽| 国产亚州精品女人久久久久久| a级毛片无码兔费真人久久| 国产精品永久久久久久久久久| 欧美久久综合性欧美| 国产精品久久久久免费a∨| 亚洲中文精品久久久久久不卡| 久久一日本道色综合久久| 狠色狠色狠狠色综合久久| 亚洲国产精品无码久久久久久曰 | 69久久夜色精品国产69| 国产69精品久久久久99| 亚洲国产小视频精品久久久三级| 久久狠狠爱亚洲综合影院| 亚洲精品视频久久久| 久久久精品人妻一区二区三区四| 久久综合亚洲色一区二区三区 | 国产亚洲色婷婷久久99精品| 伊人精品久久久久7777| 97久久精品无码一区二区天美 | 久久一区二区三区99| 国产精品久久久久一区二区三区| 久久婷婷色香五月综合激情| 精品熟女少妇aⅴ免费久久| 亚洲va中文字幕无码久久| 久久久久免费精品国产| 久久亚洲国产精品一区二区| 国产A三级久久精品| 欧美激情精品久久久久久久九九九| AV无码久久久久不卡蜜桃| 久久热这里只有精品在线观看| 久久99精品国产麻豆蜜芽| 91精品国产综合久久香蕉| 2020久久精品国产免费| 久久亚洲精品中文字幕| 亚洲精品无码专区久久久| 久久乐国产综合亚洲精品| 久久久久亚洲精品无码网址| 国产精品久久久久久久午夜片| 久久精品国内一区二区三区| 99麻豆久久久国产精品免费|