Android: How to get the area size of a drawn path?

前端 未结 2 475
悲&欢浪女
悲&欢浪女 2020-12-19 20:48

My problem is to measure the surface area of a path.
I generate a random Path and draw it on a canvas. After touching on this closen path, i want to get the area size o

相关标签:
2条回答
  • 2020-12-19 21:46

    This shows simply how to convert path to rectangle.

    RectF getAreaFromPath(Path sourcePath){
        RectF rectF = new RectF();
        sourcePath.computeBounds(rectF, true);
    
        //You can get width and height by calling rectF.width(), rectF.height()
    
        return rectF;
    }
    
    0 讨论(0)
  • 2020-12-19 21:54

    I found a solution. I generate a Region from the path and use a RegionIterator to get Rects inside the Region. With this Rects i can calculate the whole area of the path.

    private void calculateArea(Region region) {
    
            RegionIterator regionIterator = new RegionIterator(region);
    
            int size = 0; // amount of Rects
            float area = 0; // units of area
    
            Rect tmpRect= new Rect(); 
    
            while (regionIterator.next(tmpRect)) {
                size++;
                area += tmpRect.width() * tmpRect.height();
            }
    
            log.d("Rect amount=" + size);
            log.d("Area Size / units of area=" + area);
    }
    
    0 讨论(0)
提交回复
热议问题