15

我是黑莓的新手,并使用选项创建菜单。每个选项都包含一个位图图像和标签。

这是第一个菜单项的代码:

hmf1_vfm1 = new VerticalFieldManager(Field.FIELD_HCENTER |          VErrticalFieldManager.USE_ALL_WIDTH | VerticalFieldManager.FIELD_HCENTER |   VerticalFieldManager.FOCUSABLE | Field.FOCUSABLE)
{
 boolean isFocus;
//Bitmap bmp1 = Bitmap.getBitmapResource("mnu_tile1.png");
protected void sublayout(int maxWidth, int maxHeight)
 {
super.sublayout(100,125);
setExtent(100,125);
 }

protected void paint(Graphics g) {
try
{
   //g.setBackgroundColor(0x504A4B);
   //g.drawBitmap(0, 0, bmp1.getWidth(), bmp1.getHeight(), bmp1, 0, 0);
                    g.clear();
    Background bg = BackgroundFactory.createBitmapBackground(Bitmap.getBitmapResource("mnu_tile1.png")); //mnu_tile1.png
                    this.setBackground(bg);
                    super.paint(g);
                }
                catch (IllegalArgumentException e) {
                    //SupportClass.showLog(TAG+" err 2 : "+e);
                }
            }

            protected void onFocus(int direction) {
                isFocus = true;
                super.onFocus(direction);
            }
            protected void onUnfocus() {
                isFocus = false;
                super.onUnfocus();
            }

            protected boolean navigationClick(int status, int time) {

                //SupportClass.showLog("New Order...navigationClick");
                return true;
            }
            public boolean isFocusable() {
                return true;
            }
            /*protected boolean touchEvent(net.rim.device.api.ui.TouchEvent message) {

                //SupportClass.showLog("New Order...touchEvent");
                return true;
            };*/
        };

位图和标签字段被添加到这个 vfm。顺便说一句

BitmapField bfNO = new BitmapField(bmpNO,Field.FIELD_HCENTER | Field.FOCUSABLE)
        {
            protected boolean navigationClick(int status, int time) {
                SupportClass.showLog("bitmap...navigationClick");
                return true;
            }
            protected void paint(Graphics graphics) {
                //this.setBackground(BackgroundFactory.createSolidTransparentBackground(Color.BLACK,0));
                super.paint(graphics);
            }
        };

LabelField txtNO = new LabelField("New Order",LabelField.FIELD_HCENTER | Field.FOCUSABLE )
        {
            protected void paint(Graphics g) {
                g.setColor(Color.WHITE);
                //g.setBackgroundColor(0x00000000);
                super.paint(g);
            }
            protected boolean navigationClick(int status, int time) {
                SupportClass.showLog("lable...navigationClick");
                return true;
            }
        };
  • 我想关注包含图像和标签的垂直字段管理器,同时设置背景我看不到背景。我猜有些图层重叠在背景上。

  • 我还想将字段(蓝色背景)的选择器颜色更改为透明。

  • 请告诉我我犯了什么错误。

4

1 回答 1

0

嗨,请尝试使用 invalidate() 方法。

于 2014-04-09T08:44:42.307 回答