Android自定义View

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后就可以通过方法判断点击位置是否存在于区域内了

上一篇下一篇

猜你喜欢

热点阅读