Sadly I don't have enough reputation to comment so I'm adding this as another answer instead...
Cristiano's excellent answer works for checking that the circle overlaps one of the line segments of the polygon, however it doesn't check for the more unusual case of the circle being fully contained inside the polygon, which could happen if a small fast moving circle collided with a large polygon.
I've repasted Cristiano's code below with a small change to fix the issue...
public static boolean overlaps(Polygon polygon, Circle circle) {
float []vertices=polygon.getTransformedVertices();
Vector2 center=new Vector2(circle.x, circle.y);
float squareRadius=circle.radius*circle.radius;
for (int i=0;i<vertices.length;i+=2){
if (i==0){
if (Intersector.intersectSegmentCircle(new Vector2(vertices[vertices.length - 2], vertices[vertices.length - 1]), new Vector2(vertices[i], vertices[i + 1]), center, squareRadius))
return true;
} else {
if (Intersector.intersectSegmentCircle(new Vector2(vertices[i-2], vertices[i-1]), new Vector2(vertices[i], vertices[i+1]), center, squareRadius))
return true;
}
}
return polygon.contains(circle.x, circle.y);
}