天天看點

Android 中文 API (16) —— AnalogClock

正文

  一、結構

    public class AnalogClock extends View

    java.lang.Object

            android.widget.AnalogClock

  二、類概述

    

    這是一個帶有時針和分針的模拟時鐘控件。

  三、受保護的方法

         protected void onAttachedToWindow ()

         視圖(AnalogClock)附在窗體時調用。在調用時,視圖在窗體表面并開始繪制。注意保證這個方法在onDraw(Canvas)以前被調用,但是它可以在首次onDraw以前任何時間調用——包括onMeasure(int, int)之前或之後。

         protected void onDetachedFromWindow ()

         視圖(DigitalClock)從窗體上分離(移除)時調用,同時窗體表面不再繪制視圖。

         protected void onDraw (Canvas canvas)

         實作你自己的繪制。

                   參數

                            canvas    在畫布上繪制背景

         protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

  測量這個視圖以确定其内容的高度和寬度。通過measure(int, int)來調用這個方法,并且應該由子類重寫以提高内容測量的效率和精确度。

  約定:當該方法被重寫時,你必須調用setMeasuredDimension(int, int)來存儲已測量視圖的高度和寬度。否則将通過measure(int, int)抛出一個IllegalStateException異常。調用父類的onMeasure(int, int)方法是一個有效的辦法。

  父類的實作是以背景大小為預設大小,除非MeasureSpec(測量細則)允許更大的背景。 為了更好測量内容子類應該重寫onMeasure(int, int)。

  如果這個方法被重寫,子類有責任確定測量它的高度和寬度至少是視圖的最小寬度和高度(getSuggestedMinimumHeight()和getSuggestedMinimumWidth())。

參數

widthMeasureSpec         由于父類有橫向空間要求,參見View.MeasureSpec。

                            heightMeasureSpec        由于父類有縱向空間要求,參見View.MeasureSpec。

         protected void onSizeChanged (int w, int h, int oldw, int oldh)

         布局期間當視圖的大小發生改變時調用。如果隻是添加到視圖,調用時顯示的是舊值0。(譯者注:也就是添加到視圖時,oldw和oldh傳回的是0)

    參數

      w       視圖目前寬度

      h        視圖目前高度

      oldw        視圖以前的寬度

      oldh         視圖以前的高度

本文轉自over140 51CTO部落格,原文連結:http://blog.51cto.com/over140/582686,如需轉載請自行聯系原作者

繼續閱讀