onTouchEvent判断一个点是否在区域内
2017-12-01 本文已影响0人
丿歌吟有梦
自定义控件中,我是用Path进行绘制的不规则图形,如区域图,热力图等,如何判断一个点是否在区域中呢,android Region类中提供了Region.contains(x,y)方法来判断一个点是否存在
new Region();
new Region(Region region);
new Region(Rect r);
new Region(int left, int top, int right, int bottom);
通常是传入一个矩阵Rect,如果是path需要通过Region.setPath(Path path,Region clip)
//我这里path只是展示,实际上是真是的path
Path path = new Path();
RectF r = new RectF();
//通过方法得到边界
path.computeBounds(r, true);
Region region = new Region();
region.setPath(path, new Region((int) r.left, (int) r.top, (int) r.right, (int) r.bottom));
得到region后就可以通过方法判断点击位置是否存在于区域内了