2012-05-03 5 views
1

ブラックベリーで既存のiPhoneアプリケーションを作りたいです。今私はモックアップ設計のフィージビリティ・スタディ・フェーズに入っています。私は、ブラックベリーのためにiPhoneのツールバー(以下に添付されている画像のような)の種類の機能を実装するために探していた。私は実際に同じものを実装するつもりはない、それはブラックベリーUIのガイドラインに従って変更することができます。 googleingのラウンドを行った後ブラックベリーUIのツールバーをiPhoneのように作るためのガイドライン

enter image description here

私はiPhoneと同じツールバーを作成

  1. 使用し、メニュー項目と場所のアイコン
  2. の下にリストされているいくつかのことに出くわした、しかし、再びAPIは、BBから提供されていますSDK 6.0以降私はBB SDK 5.0に実装したいと思っています。私たちはそれをカスタマイズすることができますが、私はそれが巨大な努力になると信じています。

いくつかの参照リンク

BlackBerry - Custom menu toolbar

how to create iphone like tabs layout in blackberry

http://docs.blackberry.com/en/developers/deliverables/17965/Toolbars_6_0_1137042_11.jsp

ブラックベリーユーザビリティガイドラインに違反することなく、同じことを実現するための他の最良の方法を提案し、最も適していることができます私の要件のために。

答えて

1

これを試してみてください -

import net.rim.device.api.system.Bitmap; 
import net.rim.device.api.ui.Field; 
import net.rim.device.api.ui.FocusChangeListener; 
import net.rim.device.api.ui.Graphics; 
import net.rim.device.api.ui.Manager; 
import net.rim.device.api.ui.UiApplication; 
import net.rim.device.api.ui.component.BasicEditField; 
import net.rim.device.api.ui.component.BitmapField; 
import net.rim.device.api.ui.component.ButtonField; 
import net.rim.device.api.ui.component.LabelField; 
import net.rim.device.api.ui.component.SeparatorField; 
import net.rim.device.api.ui.container.HorizontalFieldManager; 
import net.rim.device.api.ui.container.MainScreen; 
import net.rim.device.api.ui.container.VerticalFieldManager; 

public class tabbar extends UiApplication { 

public tabbar() { 
    TabControlScreen screen = new TabControlScreen(); 
    pushScreen(screen); 
} 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    tabbar app = new tabbar(); 
    app.enterEventDispatcher(); 
} 

private class TabControlScreen extends MainScreen implements FocusChangeListener { 



    private VerticalFieldManager tabArea; 

    private LabelField tab1Heading; 
    private LabelField tab2Heading; 
    private LabelField tab3Heading; 
    private LabelField tab4Heading; 


    private VerticalFieldManager tab1Manager; 
    private VerticalFieldManager tab2Manager; 
    private VerticalFieldManager tab3Manager; 
    private VerticalFieldManager tab4Manager; 
    BitmapField bit,bit1,bit2,bit3; 

    public TabControlScreen() { 



     HorizontalFieldManager hManager = new HorizontalFieldManager(FIELD_HCENTER); 

     final Bitmap header_logo = Bitmap.getBitmapResource("1.png"); 
     bit=new BitmapField(header_logo,BitmapField.FOCUSABLE |BitmapField.HIGHLIGHT_FOCUS); 

     final Bitmap header_logo1 = Bitmap.getBitmapResource("3.png"); 
     bit1=new BitmapField(header_logo1,BitmapField.FOCUSABLE |BitmapField.HIGHLIGHT_FOCUS); 

     final Bitmap header_logo2 = Bitmap.getBitmapResource("2.png"); 
     bit2=new BitmapField(header_logo2,BitmapField.FOCUSABLE |BitmapField.HIGHLIGHT_FOCUS); 

     final Bitmap header_logo3 = Bitmap.getBitmapResource("4.png"); 
     bit3=new BitmapField(header_logo3,BitmapField.FOCUSABLE |BitmapField.HIGHLIGHT_FOCUS); 


     bit.setFocusListener(this); 
     bit1.setFocusListener(this); 
     bit2.setFocusListener(this); 
     bit3.setFocusListener(this); 


     hManager.add(bit); 
     hManager.add(bit1); 
     hManager.add(bit2); 
     hManager.add(bit3); 



     add(hManager); 

     tab1Manager = new VerticalFieldManager(); 
     tab2Manager = new VerticalFieldManager(); 
     tab3Manager = new VerticalFieldManager(); 
     tab4Manager = new VerticalFieldManager(); 


     tabArea = displayTab1(); 
     add(tabArea); 

    } 

    public void focusChanged(Field field, int eventType) { 
     if (tabArea != null) { 
      if (eventType == FOCUS_GAINED) { 
       if (field == bit) { 

        delete(tabArea); 
        tabArea = displayTab1(); 
        add(tabArea); 
       } else if (field == bit1) { 

        delete(tabArea); 
        tabArea = displayTab2(); 
        add(tabArea); 
       } else if (field == bit2) { 

        delete(tabArea); 
        tabArea = displayTab3(); 
        add(tabArea); 
       } 
       else if (field == bit3) { 

        delete(tabArea); 
        tabArea = displayTab4(); 
        add(tabArea); 
       } 
      } 
     } 

    } 

    public VerticalFieldManager displayTab1() { 
     if (tab1Heading == null) { 
      tab1Heading = new LabelField("1"); 

      ButtonField settings=new ButtonField("Settings",ButtonField.FIELD_LEFT); 
      //ButtonField add=new ButtonField("Add",ButtonField.FIELD_RIGHT); 

      //JustifiedHorizontalFieldManager JustifiedHorizontalFieldManager=new JustifiedHorizontalFieldManager(settings,add,true); 


      tab1Manager.add(settings); 
     } 

     return tab1Manager; 
    } 



    public VerticalFieldManager displayTab2() { 
     if (tab2Heading == null) { 
      tab2Heading = new LabelField("2"); 
      tab2Manager.add(tab2Heading); 
     } 

     return tab2Manager; 
    } 

    public VerticalFieldManager displayTab3() { 
     if (tab3Heading == null) { 
      tab3Heading = new LabelField("3"); 
      tab3Manager.add(tab3Heading); 
     } 

     return tab3Manager; 
    } 
    public VerticalFieldManager displayTab4() { 
     if (tab4Heading == null) { 
      tab4Heading = new LabelField("4"); 
      tab4Manager.add(tab4Heading); 
     } 

     return tab4Manager; 
    } 
} 

} 
+0

http://rincethomas.blogspot.in/2012/04/display-toolbar-with-auto-closing.html – Signare

+0

これはHorizo​​ntalFieldManagerでは非常に簡単ですが、タブのようには見えません。 –

+0

私は答えを編集しました。それを参照してください。 – Signare

2

あなたはAdvanced UI componentsを使用することができ、私たちは私たちのプロジェクトでそれらを使用すると、彼らは通常、トリックを行います。

コードはオープンソースであり、必要に応じて拡張することができます。

関連する問題