View学习(android)

来源:互联网 发布:注册表关闭139端口 编辑:程序博客网 时间:2024/05/13 08:23

获得相对于父类的位置

    /**

     * 获得此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)