Bagaimana cara membuat Status Bar di Blackberry?

saya ingin mengatur bilah status di bagian bawah layar dan itu akan menampilkan satu tombol di sisi kiri dan satu sisi kanan. Anda dapat melihat Layar saya di bawah. kode saya seperti ini..

private void BottomLayout() 
    {
        Bitmap topBg = Bitmap.getBitmapResource(ImageName.topbar);
        final Bitmap topBg1 = cmn_fun.resizeBitmap(topBg, SCREEN_WIDTH, topBg.getHeight());
        HorizontalFieldManager hfmbottom = new HorizontalFieldManager(Field.USE_ALL_WIDTH)
        {
            protected void paintBackground(Graphics graphics) 
            {
                graphics.drawBitmap(0,0,SCREEN_WIDTH,topBg1.getHeight(), topBg1,0,0 );             
                super.paint(graphics);
            }
            protected void sublayout(int maxWidth, int maxHeight) {
                // TODO Auto-generated method stub
                super.sublayout(topBg1.getWidth(), topBg1.getHeight());
                setExtent(topBg1.getWidth(), topBg1.getHeight());
            }

        };

        Bitmap imgprv=Bitmap.getBitmapResource(ImageName.btn_prev);
        Bitmap imgprv_sel=Bitmap.getBitmapResource(ImageName.btn_prev_sel);     
        btn_prev=new CustomButtonField(0, "", imgprv_sel, imgprv, Field.FIELD_LEFT);
        hfmbottom.add(btn_prev);

        Bitmap imgnext=Bitmap.getBitmapResource(ImageName.btn_next);
        Bitmap imgnext_sel=Bitmap.getBitmapResource(ImageName.btn_next_sel);        
        btn_next=new CustomButtonField(0, "", imgnext_sel, imgnext, Field.FIELD_RIGHT);
        hfmbottom.add(btn_next);


        setStatus(hfmbottom);

    }

Terima kasih sebelumnya.

masukkan deskripsi gambar di sini


person Hasmukh    schedule 01.02.2012    source sumber
comment
di sini tambahkan ini btn.setPadding(0, 0, 0, Display.getWidth()-btn_prev.getWidth()-btn_next.getWidth());   -  person Govindarao Kondala    schedule 01.02.2012


Jawaban (5)


Saya memposting Anda hanya panel status bar.

Sebenarnya di HorizontalFieldManager memang menimbulkan masalah.

Oleh karena itu temukan cara berikut dan berhasil. Itu memang menambahkan kode tambahan tetapi berhasil

import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.Display;
import net.rim.device.api.ui.DrawStyle;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.container.GridFieldManager;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;

class SampleBottomPanelScreen extends MainScreen {

private HorizontalFieldManager title_bar;

private VerticalFieldManager btn1_manager;
private ButtonField btn1;
private VerticalFieldManager btn2_manager;
private ButtonField btn2;
Bitmap bg_image;

public SampleBottomPanelScreen() {

    //bg_image = Bitmap.getBitmapResource("backgroundImage.png");

    btn1_manager = new VerticalFieldManager(VerticalFieldManager.FIELD_LEFT) {

         protected void sublayout(int maxWidth, int maxHeight)
         {
                int displayWidth = Display.getWidth() / 2;
                int displayHeight = Display.getHeight();

                super.sublayout( displayWidth, displayHeight);
                setExtent( displayWidth, displayHeight);
         }  
    };

    btn2_manager = new VerticalFieldManager(VerticalFieldManager.FIELD_RIGHT | VerticalFieldManager.USE_ALL_WIDTH) {

         protected void sublayout(int maxWidth, int maxHeight)
         {
                int displayWidth = Display.getWidth() / 2;
                int displayHeight = Display.getHeight();

                super.sublayout( displayWidth, displayHeight);
                setExtent( displayWidth, displayHeight);
         }  
    };

    title_bar = new HorizontalFieldManager(Manager.USE_ALL_WIDTH){

        public void paint(Graphics graphics) {
            graphics.setBackgroundColor(0x2bb1ff);
            graphics.clear();

            super.paint(graphics);
        }

        protected void sublayout(int maxWidth, int maxHeight)
        {
            int displayWidth = Display.getWidth();
            int displayHeight = Display.getHeight() / 8;

            super.sublayout( displayWidth, displayHeight);
            setExtent( displayWidth, displayHeight);
        }   
    };

    btn1 = new ButtonField("Submit", ButtonField.LEFT | ButtonField.FIELD_LEFT);
    btn2 = new ButtonField("Cancel", ButtonField.RIGHT| ButtonField.FIELD_RIGHT);

    btn1_manager.add(btn1);
    btn2_manager.add(btn2);

    title_bar.add(btn1_manager);
    title_bar.add(btn2_manager);

    this.add(title_bar);
}
 }
person android developer    schedule 01.02.2012

coba kelas manajer tata letak

    package com.doapps.blackberry.layouts;

import net.rim.device.api.system.Display;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.Manager;

public class LayoutManager extends Manager 
{
    int n;
    public LayoutManager(int n) 
    {
        super(Manager.NO_VERTICAL_SCROLL);
        this.n =n;
    }

    protected void sublayout(int width, int height)
    {
        if(n==2)
        {
            Field first = getField(0);
            Field second = getField(1);
            layoutChild(first, this.getPreferredWidth(), this.getPreferredHeight());
            layoutChild(second, this.getPreferredWidth(), this.getPreferredHeight());
            setPositionChild(first,0, getPreferredHeight() -first.getHeight());
            setPositionChild(second,getPreferredWidth()-second.getWidth(), getPreferredHeight() -first.getHeight());

            setExtent(width, height);
        }
        if(n==1)
        {
            Field second= getField(0);
            layoutChild(second, this.getPreferredWidth(), this.getPreferredHeight());
            setPositionChild(second,getPreferredWidth()-second.getWidth(), getPreferredHeight() -second.getHeight());
            setExtent(width, height);
        }
    }
    public int getPreferredHeight() {
        return 45;
    }

    public int getPreferredWidth() {
        return Display.getWidth();
    }
} 
person RVG    schedule 01.02.2012

Saya pikir Anda perlu menggunakan GridFieldManager. Atur ulang fragmen kode berikut sesuai kebutuhan Anda dan mainkan dengan paddings ...

    private HorizontalFieldManager createRightTab () {

        HorizontalFieldManager hMgr = new HorizontalFieldManager(Field.FIELD_RIGHT);
        ImageButtonField button = new ImageButtonField ( Bitmap.getBitmapResource(res.button_1), button_w, button_h);
        button.setFocusListener(this);
        hMgr.add(button);

        return hMgr;
    }

    private HorizontalFieldManager createLeftTab () {

        HorizontalFieldManager hMgr = new HorizontalFieldManager(Field.FIELD_LEFT);
        ImageButtonField button = new ImageButtonField ( Bitmap.getBitmapResource(res.button_2), button_w, button_h);
        button.setFocusListener(this);
        hMgr.add(button);

        return hMgr;
    }

    public void GridControlScreen() {

        int w = net.rim.device.api.system.Display.getWidth();

        gridMgr = new GridFieldManager(1, 3, 0);
        gridMgr.setColumnProperty(0, GridFieldManager.FIXED_SIZE, (button_w));
        gridMgr.setColumnProperty(1, GridFieldManager.FIXED_SIZE, (w-(2*button_w)));
        gridMgr.setColumnProperty(2, GridFieldManager.FIXED_SIZE, (button_w));

        HorizontalFieldManager hMgr_a = createLeftTab();
        HorizontalFieldManager hMgr_center = new HorizontalFieldManager();
        HorizontalFieldManager hMgr_b = createRightTab();

        gridMgr.add(hMgr_a);
        gridMgr.add(hMgr_center);
        gridMgr.add(hMgr_b);

        add(gridMgr);
    }


Semoga ini bisa membantu.

person rosco    schedule 01.02.2012

Coba ini

private void BottomLayout() 
    {
        Bitmap topBg = Bitmap.getBitmapResource(ImageName.topbar);
        final Bitmap topBg1 = cmn_fun.resizeBitmap(topBg, SCREEN_WIDTH, topBg.getHeight());
        HorizontalFieldManager hfmbottom = new HorizontalFieldManager(Field.USE_ALL_WIDTH)
        {
            protected void paintBackground(Graphics graphics) 
            {
                graphics.drawBitmap(0,0,SCREEN_WIDTH,topBg1.getHeight(), topBg1,0,0 );             
                super.paint(graphics);
            }
            protected void sublayout(int maxWidth, int maxHeight) {
                // TODO Auto-generated method stub
                super.sublayout(topBg1.getWidth(), topBg1.getHeight());
                setExtent(topBg1.getWidth(), topBg1.getHeight());
            }

        };

        Bitmap imgprv=Bitmap.getBitmapResource(ImageName.btn_prev);
        Bitmap imgprv_sel=Bitmap.getBitmapResource(ImageName.btn_prev_sel);     
        btn_prev=new CustomButtonField(0, "", imgprv_sel, imgprv, Field.FIELD_LEFT);
        hfmbottom.add(btn_prev);

        Bitmap imgnext=Bitmap.getBitmapResource(ImageName.btn_next);
        Bitmap imgnext_sel=Bitmap.getBitmapResource(ImageName.btn_next_sel);        
        btn_next=new CustomButtonField(0, "", imgnext_sel, imgnext, Field.FIELD_RIGHT);
        btn_next.setPadding(0, 0, 0, Display.getWidth()-btn_prev.getWidth()-btn_next.getWidth());
        hfmbottom.add(btn_next);


        setStatus(hfmbottom);

    }
person Govindarao Kondala    schedule 01.02.2012

ini cara lain untuk mengatur Bidang Sisi Kiri dan Kanan. http://keraisureshvblackberry.blogspot.in/2012/02/there-are-very-common-there-there-are.html

person Hasmukh    schedule 02.03.2012