使用region測量一個點座標是否在path範圍內

在項目中我們可以需要判斷點擊某個點 判斷這個點是否那對應方範圍;可以使用region類

----------------------------------------------------使用步驟-------------------------------------------------------------------

1》創建 region範圍對象

Region    region=new   Region();

2》把path設置到region裏面

//創建個rectF類保存path邊界信息

RectF rectF=new RectF();

//調用path方法 把path邊界信息保存到rectF裏面

//參數 (保存信息的矩形,是否不再使用--》使用一次就可以了)

path.computeBounds(rectF,true);

//把path設置到region裏面

region.setPath(path, new Region((int)rectF.left, (int)rectF.top,(int)rectF.right, (int)rectF.bottom));

3》調用包含方法 判斷座標點是否在path方法

//參數(點擊座標X ,Y) 返回true包含  ;返回false不包含

region.contaions((int)x,(int)y);

 

//注意   x = event.getX();   y = event.getY();

-------------------------------------------------封裝工具類------------------------------------------------------------

/**
 * 判斷path 是否包含點
 */
public class PathUtils {

    /**
     * @param x    需要判斷的點  的x座標
     * @param y    需要判斷的點  的y座標
     * @param path path對象
     * @return
     * 注意 x=event.getX();   y=event.getY();  
     */
    public static boolean isContaionsPoint(int x, int y, Path path) {
        if (path == null) {
            new Exception("path is null");
            return false;
        }
        RectF rectF = new RectF();
        path.computeBounds(rectF, true);

        Region region = new Region();
        region.setPath(path, new Region((int) rectF.left, (int) rectF.top, (int) rectF.right, (int) rectF.bottom));
        return region.contains(x, y);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章