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:



23 Sep
2009
If some task may take long time then if user will not see any message or instruction or loading bar, he/she will close the application. That’s why Loading bar is used that represents to wait for some time until loading bar is filling its portion completely.
Here loading bar is drawn in canvas display and for animation timer is used.
This article explains all the modules with example and also with snapshot.