在项目中我们可以需要判断点击某个点 判断这个点是否那对应方范围;可以使用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);
}
}