×
Namespaces

Variants
Actions
Revision as of 08:36, 7 February 2012 by hamishwillee (Talk | contribs)

Canvas Loading Bar in Java ME

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Article
Created: jappit (30 Apr 2008)
Last edited: hamishwillee (07 Feb 2012)

A simple loading bar to be used on Canvas when doing long operations. You can see a live preview here: Canvas Loading bar emulator

J2me loading bar.png

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:

public void start()
{
stepTimer = new Timer();
 
stepTimer.schedule(new TimerTask()
{
public void run()
{
step();
}
},
stepInterval, stepInterval
);
}
public void stop()
{
stepTimer.cancel();
}
void step()
{
currentSquares = (currentSquares + 1) % (squares + 1);
}
120 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×