Graphics g = bi.getGraphics();
int qLength = bounds.width * 3 / 5, height = bounds.height, width = bounds.width;
for (int i = 0, monoChannel = 0; i < 5; i++, monoChannel = (int) ((1 - Math.exp(-i)) * 50)) {
g.setColor(new Color(230 - monoChannel, 230 - monoChannel, 230 - monoChannel, 255));
g.drawPolyline(new int[] { i, i, qLength - i }, new int[] { height - i, i, i }, 3);
g.fillArc(width - height + i, i, height - 2 * i, height - 2 * i, 45, 180);
g.setColor(new Color(130 + monoChannel, 130 + monoChannel, 130 + monoChannel, 255));
g.drawPolyline(new int[] { i, qLength - i, qLength - i }, new int[] { height - i, height - i, i }, 3);
g.fillArc(width - height + i, i, height - 2 * i, height - 2 * i, 225, 180);
}
g.fillRect(5, 5, qLength - 9, height - 9);