This came up a while ago on IRC. There are a couple ways, but here is one that should be pretty flexible:http://www.java-gaming.org/?action=pastebin&id=589
This uses a triangle strip to create a thick line that is in the shape of a circle. If we just use full colors for the triangle strip, it will lead to aliasing (jagged edges). To solve this an easy solution is to use a lookup texture, like this:http://imgur.com/Nj0eGpf
You can adjust the feather in Photoshop to make the line edge smoother or sharper. More info on triangle strips and lookup texture here:https://github.com/mattdesl/lwjgl-basics/wiki/LibGDX-Finger-Swipe#4-extrude-to-triangle-strip
The problem with this technique is that it doesn't scale perfectly. If you need accurate scaling you can use a fragment shader (GLES20 only) for the anti-aliasing. What I might do is give the outer-most vertices a texcoord of 1.0, and the inner-most vertices a texcoord of -1.0. Then, in the fragment shader, you can use abs() to ensure that the gradiation goes from 0.0 (outer edges) to 1.0 (inner edges), and determine the smooth factor using that.
float aa = 1.0 - abs(vTexCoord.y);
vec4 color = vColor;
color.a *= smoothstep(0.0, smooth/thickness, aa);
gl_FragColor = color;
You could play with the "smooth" uniform for a softer line. I've found a value of 2.0 to work well.
Also note: ImmediateModeRenderer doesn't flush the batch for you; so make sure your batch size is large enough to fill all your vertices, or manually batch it if you reach the cap.
If you have questions just ask, it's a bit of an advanced topic..