正文
一、結構
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,如需轉載請自行聯系原作者