美文网首页Android自定义View
onTouchEvent判断一个点是否在区域内

onTouchEvent判断一个点是否在区域内

作者: 丿歌吟有梦 | 来源:发表于2017-12-01 12:10 被阅读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后就可以通过方法判断点击位置是否存在于区域内了

    相关文章

      网友评论

        本文标题:onTouchEvent判断一个点是否在区域内

        本文链接:https://www.haomeiwen.com/subject/ejnibxtx.html