/**
* 获得此View左边相对其父类的X坐标位置。
*/
public final int getLeft() { return mLeft; }
/**
* 获得此View右边相对其父类的X坐标位置。
*/
public final int getRight() { return mRight; }
/**
* 获得此View顶边相对其父类的Y坐标位置。
*/
public final int getTop() { return mTop;
/**
* 获得此View底边相对其父类的Y坐标位置。
*/
public final int getBottom() { return mBottom; }
/**
* 获取此View的顶部空白填充大小
*/
public int getPaddingTop() { return mPaddingTop; }
/**
* 获取此View的底部空白填充大小
*/
public int getPaddingBottom() { return mPaddingBottom; }
/**
* 获取此View的左边空白填充大小
*/
public int getPaddingLeft() { return mPaddingLeft; }/**
* 获取此View的右边空白填充大小
*/
public int getPaddingRight() { return mPaddingRight; }
/** * 查看和测量View,以确定其内容的测量宽度和测量高度。此方法被measure(int, int)调用,应该由子类重写,以提供准确,高效的內容测量。 * * CONTRACT: 当重写这个方法的时候, 你必须调用setMeasuredDimension(int, int),去存储测量的内容宽度和高度. * 如果不这样做会引发一个IllegalStateException, 是被measure(int, int)抛出的. * 调用父类的onMeasure(int, int)是不能存储测量结果的. * * 基类默认的测量实现是对于背景大小, 除非更大的尺寸被MeasureSpec允许. 子类应当重写onMeasure(int, * int)以便提供更好的内容测量. * * 如果这个方法被重写, 他子类的责任是确保测量高度和宽度至少是此View的最小高度和宽度(getSuggestedMinimumHeight() and * getSuggestedMinimumWidth()). * * 参数: widthMeasureSpec 向父类请求的横向空间。这些请求被编码在android.view.View.MeasureSpec里面 * heightMeasureSpec 向父类请求的竖向空间。这些请求被编码在android.view.View.MeasureSpec里面 * */
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec), getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec)); }
/** * 实现这个方法去处理触屏事件 * * 在View中被重写 * * 参数: * event 事件. 返回: 如果事件被处理返回true, 否则返回false. * */
public boolean onTouchEvent(MotionEvent event) {
...
}
注释:请参见ViewGroup中的方法:onInterceptTouchEvent(MotionEvent ev)