Building a J2ME sliding menu with text and images(part-2)

Ads
 

Building a J2ME sliding menu with text and images(part-2)

In the given J2ME Menus example, we have explained to create two different buttons that is going to perform as a back and forward buttons. You can see the series of photographs one by one using these sliding menu in J2ME.

In the given J2ME Menus example, we have explained to create two different buttons that is going to perform as a back and forward buttons. You can see the series of photographs one by one using these sliding menu in J2ME.

Building a J2ME sliding menu with text and images(part-2)

     

In the given J2ME Menus example, we have explained to create two different buttons that is going to perform as a back and forward buttons. You can see the series of photographs one by one using these sliding menu in J2ME.

Code to create back and forward button images in J2ME 

r_arrow = Image.createImage("/slide_arrow_right.png");

l_arrow = Image.createImage("/slide_arrow_left.png");

To change the image as per our next event, we have created a function as given below:

public void slideItem(int next){
  if(!isImage() && select_index + next >= 
 
&& select_index + next < labels.length){
  back_index = select_index;  
  select_index += next;  
  time = System.currentTimeMillis();
  }
  }

 The Application is as follows:

 

 

Source Code of SlideMenu.java

 

import javax.microedition.lcdui.*;

public class SlideMenu{
  public int select_index, back_index, width, height;
  public Image r_arrow, l_arrow;
  String[] labels = null;
  Image[] icons = null;
  public int duration = 500;
  long time = 0;
  
  public SlideMenu(String[] labels, Image[] icons, int width, 
   int 
heightthrows Exception{
  try{
  r_arrow = Image.createImage("/slide_arrow_right.png");
  l_arrow = Image.createImage("/slide_arrow_left.png");
  }catch(Exception e){
  e.printStackTrace();
  }
  this.width = width;
  this.height = height;  
  this.labels = labels;
  this.icons = icons;  
  }

  public void slideItem(int next){
  if(!isImage() && select_index + next >= && select_index + 
  next < labels.length
){

  back_index = select_index;  
  select_index += next;  
  time = System.currentTimeMillis();
  }
  }

  public boolean isImage(){
  return back_index != select_index;
  }

  public void paint(Graphics g){  
  g.setColor(25500);
  g.fillRect(00, width, height);  
  g.setColor(00255);
  
  if(select_index > 0){
  g.drawImage(l_arrow, 2, height / 2
  Graphics.LEFT | Graphics.VCENTER
);
  }

  if(select_index < icons.length - 1){
  g.drawImage(r_arrow, width - 2, height / 2
  Graphics.RIGHT | Graphics.VCENTER
);
  }

  g.drawString(labels[select_index], width / 2
  height - 
2, Graphics.BOTTOM | Graphics.HCENTER);  

  g.setClip(l_arrow.getWidth()0, width - 
  l_arrow.getWidth
(), height);
  
  if(select_index != back_index){
  int difference = (int)(System.currentTimeMillis() - time);  
  if(difference > duration){
  difference = duration;
  }
  
  int image_present = select_index > back_index ? : - 1;
  int current_image = width / - image_present * 
  difference * width / duration;

  int next_image = current_image + width * image_present;
  
  g.drawImage(icons[back_index], current_image, height / 2
  Graphics.VCENTER | Graphics.HCENTER
);  

  g.drawImage(icons[select_index], next_image, height / 2
  Graphics.VCENTER | Graphics.HCENTER
);
  
  if(difference >= duration){
  back_index = select_index;
  }
  }else{
  g.drawImage(icons[select_index], width / 2, height / 2
  Graphics.VCENTER | Graphics.HCENTER
);
  }
  }
}

Download Source Code

Ads

Ads