在項目中我們可以需要判斷點擊某個點 判斷這個點是否那對應方範圍;可以使用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);
}
}