标签栏在黑莓没有ToolBarManager [英] Tab bar in blackberry without ToolBarManager

查看:336
本文介绍了标签栏在黑莓没有ToolBarManager的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个确切的外观的工具栏和感觉我的BlackBerry项目。任何帮助是极大的AP preciated。请注意,我不能使用ToolBarManager。我的项目OS 5.0后,应该支持所有设备

I want to create a tool bar of exact look and feel for my blackberry project. Any help is greatly appreciated. Please note I cannot use ToolBarManager. My project should support all devices after OS 5.0

感谢

推荐答案

这是一个示例code,它如何在黑莓标签。
我总3个屏幕后的 statUp (它扩展的UIApplication)班

This is a sample code that how to create Tabs in blackberry. I had total 3 screens after statUp(which extends UiApplication) class


  1. LoadingScreen.java

public class LoadingScreen extends MainScreen
{   
int current_index=0;
BottomPanel bottomPanel;
public LoadingScreen(int current_index)
{   
   this.current_index=current_index;
   bottomPanel=new BottomPanel(current_index);
}

public  void createGUI() 
{       
setTitle("Loading Screen");

VerticalFieldManager vertical=new VerticalFieldManager(USE_ALL_WIDTH)
{
    protected void sublayout(int maxWidth, int maxHeight) 
    {               
        super.sublayout(Display.getWidth(), 150);
        setExtent(Display.getWidth(), 150);
    }
};
vertical.setBackground(BackgroundFactory.createSolidBackground(Color.GREEN));
ButtonField button=new ButtonField("Click");
vertical.add(button);       
add(vertical);

setStatus(bottomPanel);     
}
}


  • BottomPanel.java

    public class BottomPanel extends VerticalFieldManager implements FieldChangeListener 
    {
       Bitmap news_bit=Bitmap.getBitmapResource("news.png");//these images are cutting according to device requirement;
       Bitmap news_bit_hover=Bitmap.getBitmapResource("news_h.png");
       Bitmap settings_bit=Bitmap.getBitmapResource("settings.png");
       Bitmap settings_bit_hover=Bitmap.getBitmapResource("settings_h.png");
       Bitmap about_bit=Bitmap.getBitmapResource("about.png");
       Bitmap about_bit_hover=Bitmap.getBitmapResource("about_h.png");
       PictureBackgroundButtonField news_pic,settings_pic,about_pic;
       HorizontalFieldManager hr;
       int current_index=0;
       public BottomPanel(int current_index)
       {        
       super(FOCUSABLE);
       this.current_index=current_index;
      VerticalFieldManager ver=new VerticalFieldManager(USE_ALL_WIDTH|USE_ALL_HEIGHT)
      {         
        protected void sublayout(int width, int height) 
        {
            super.sublayout(width, news_bit.getHeight());
            setExtent(width, news_bit.getHeight());
        }
    };
    hr=new HorizontalFieldManager(FIELD_HCENTER);
    if(current_index==1)
    {
        news_pic=new PictureBackgroundButtonField(news_bit.getWidth(),news_bit.getHeight(), Field.NON_FOCUSABLE|Field.FIELD_VCENTER, news_bit_hover, news_bit_hover);
    }
    else
    {
        news_pic=new PictureBackgroundButtonField(news_bit.getWidth(),news_bit.getHeight(), Field.FOCUSABLE|Field.FIELD_VCENTER, news_bit, news_bit_hover);
    }
    news_pic.setChangeListener(this);
    hr.add(news_pic);
    
    if(current_index==2)
    {
        settings_pic=new PictureBackgroundButtonField(settings_bit.getWidth(),settings_bit.getHeight(), Field.NON_FOCUSABLE|Field.FIELD_VCENTER, settings_bit_hover, settings_bit_hover);
    }
    else
    {
        settings_pic=new PictureBackgroundButtonField(settings_bit.getWidth(),settings_bit.getHeight(), Field.FOCUSABLE|Field.FIELD_VCENTER, settings_bit, settings_bit_hover);
    }
    settings_pic.setChangeListener(this);
    hr.add(settings_pic);
    
    if(current_index==3)
    {
        about_pic=new PictureBackgroundButtonField(about_bit.getWidth(),about_bit.getHeight(),Field.NON_FOCUSABLE|Field.FIELD_VCENTER, about_bit_hover, about_bit_hover);
    }
    else
    {
        about_pic=new PictureBackgroundButtonField(about_bit.getWidth(),about_bit.getHeight(), Field.FOCUSABLE|Field.FIELD_VCENTER, about_bit, about_bit_hover);
    }
    about_pic.setChangeListener(this);
    hr.add(about_pic);
    
    ver.add(hr);
    add(ver);
    }
    
    public void fieldChanged(Field field, int context) 
    {           
    if(field==news_pic)
    {               
        LoadingScreen loadingScreen=new LoadingScreen(1);
        UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
        UiApplication.getUiApplication().pushScreen(loadingScreen);
        loadingScreen.createGUI();
    }
    else if(field==settings_pic)
    {
        LoadingScreen loadingScreen=new LoadingScreen(2);
        UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
        UiApplication.getUiApplication().pushScreen(loadingScreen);
        loadingScreen.createGUI();
    }
    else if(field==about_pic)
    {
        LoadingScreen loadingScreen=new LoadingScreen(3);
        UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
        UiApplication.getUiApplication().pushScreen(loadingScreen);
        loadingScreen.createGUI();
    }       
    }
    }   
    


  • PictureBackgroundButtonField.java

    public class PictureBackgroundButtonField extends Field 
    {       
        private String _label;
        private int _labelHeight;
        private int _labelWidth;
        private Font _font;
    
        private Bitmap _currentPicture;
        private Bitmap _onPicture ;
        private Bitmap _offPicture ;
        public PictureBackgroundButtonField(int width,int height, long style, Bitmap picture, Bitmap selectedPic) 
        {
            super(style);
    
           _font = getFont();
           _label = "";
          _labelHeight = height;
          _labelWidth = width;
          _currentPicture = picture;
          _onPicture = selectedPic;
          _offPicture = picture;        
       }
       public int getPreferredHeight() 
       {
           return _labelHeight;
       }
       public int getPreferredWidth() 
       {
           return _labelWidth;
       }
       protected void onFocus(int direction) 
       {
           _currentPicture = _onPicture;
           invalidate();
       }
       protected void onUnfocus() 
       {
            _currentPicture = _offPicture;
            invalidate();
       }
       protected void drawFocus(Graphics graphics, boolean on) 
       {
            // Do nothing
       }
       protected void layout(int width, int height) 
       {
           setExtent( getPreferredWidth(), getPreferredHeight());
       }
       protected void paint(Graphics graphics) 
       {            
               graphics.drawBitmap(0, 0, getPreferredWidth(), getPreferredHeight(), _currentPicture, 0, 0);     
               graphics.setFont(_font);
               graphics.drawText(_label, 4, 2, 
        (int)( getStyle() & DrawStyle.ELLIPSIS | DrawStyle.HALIGN_MASK ),
        getWidth() - 6 );
      }
      protected boolean navigationClick(int status, int time) 
      {
             fieldChangeNotify(1);
             return true;
      }    
    }
    


  • 试试这个code,看到了差距;

    Try this code and see the difference;

    这篇关于标签栏在黑莓没有ToolBarManager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆