请教:怎样在圆形图片上截取一定角度的扇形图片?

解决方案 »

  1.   

    我也提过差不多的问题,有个人回答用下面的方法:public void getSector(Canvas canvas,float radius, double fromDegree, double toDegree, Op op) 
         {
           canvas.translate(radius, radius);
           Path pathCircle = new Path();
           pathCircle.addCircle(0, 0, radius, Direction.CCW);
           
           Path pathTriangle = new Path();
           pathTriangle.moveTo(0, 0);
           float vYFrom = (float) (Math.sin(fromDegree * Math.PI / 180) * 2 * radius);
           float vYTo = (float) (Math.sin(toDegree * Math.PI / 180) * 2 * radius);
           float vYCenter = (float) (Math.sin(((toDegree + fromDegree) / 2) * Math.PI / 180) * 2 * radius);
           float vXFrom = (float) (Math.cos(fromDegree * Math.PI / 180) * 2 * radius);
           float vXTo = (float) (Math.cos(toDegree * Math.PI / 180) * 2 * radius);
           float vXCenter = (float) (Math.sin(((toDegree + fromDegree) / 2) * Math.PI / 180) * 2 * radius);
           pathTriangle.lineTo(vXFrom, vYFrom);
           pathTriangle.lineTo(vXCenter, vYCenter);
           pathTriangle.lineTo(vXTo, vYTo);
           pathTriangle.close();
           canvas.clipPath(pathCircle);
           canvas.clipPath(pathTriangle, op);
         }
    就没说别的了,我不知道怎么调用,在哪对图片操作,兄台若能研究出结果也回下