自定义view

413 阅读1分钟

知识点积累:

  1. 弧度的计算公式为:角度 *(π/180); sinα中α是弧度制
  2. 点位是否在矩形中 rect.contains(x, y)

遇到的问题:

1. 自定义可拖动view,父布局重绘导致回到初始位置

    /**
     * 父布局重绘时,为了实现拖动位置不回到初始位置,
     * 需要在位置改变的同时设置LayoutParams,以此在父布局中更新view位置。
     * 
     * MotionEvent.ACTION_UP
     */
    private void keepLayout(int left, int top) {
        LayoutParams params = (LayoutParams) getLayoutParams();
        // 指定宽高
        params.width =getExactWidth();    //getMeasureWidth()   
        params.height = getExactHeight(); //getMeasureHeight() 
        params.setMargins(left, top, 0, 0);
        setLayoutParams(params);
    }