Canvas Loading Bar in Java ME
Article Metadata
A simple loading bar to be used on Canvas when doing long operations. You can see a live preview here: Canvas Loading bar emulator
We'll start defining some instance variables, that we'll use within our code:
public long stepInterval = 250L;
public int width = 0;
public int height = 0;
int padding = 0;
int color = 0x000000;
int squares = 0;
int squareWidth = 0;
int currentSquares = 0;
Timer stepTimer = null;
Now the bar constructor, with its arguments:
- bar size (width and height)
- padding between squares
- number of squares to be used
- squares color
public LoadingBar(int width, int height, int padding, int squares, int color)
{
this.width = width;
this.height = height;
this.squares = squares;
this.color = color;
this.padding = padding;
this.squareWidth = (width - padding) / (squares) - padding;
}
Paint method is quite straightforward:
public void paint(Graphics g)
{
g.setColor(color);
for(int i = 0; i < currentSquares; i++)
{
g.fillRect(i * (squareWidth + padding), 0, squareWidth, height);
}
}
Finally, the animation logic, where we'll use a Timer, and expose start() and stop() methods to control Bar animation:


