3

我正在使用一个包含小图像的位图字段。

当焦点出现在该图像上时,焦点的蓝色不会出现,如何设置焦点宽度和高度

我的代码::

contract_image_field = new BitmapField(contract_image,Field.FOCUSABLE)
 {
       public void getFocusRect(XYRect rect) 
      {
       rect.width=0;
       rect.height=0;
       //super.getFocusRect(rect);
      }
       protected void onFocus(int direction) 
       {
        myScreen.this.invalidate();
      super.onFocus(direction);
     }
       protected void onUnfocus() 
       {
        myScreen.this.invalidate();
      super.onUnfocus();
     }
      };
      contract_image_field.setBitmap(contract_image);

这就是我使用图像字段的方式,

虽然我的图片是可点击的,但我看不到那个蓝色(我想要那个请帮忙!!!)

更改 getFocusRect 中的宽度和高度值甚至不能解决问题

4

3 回答 3

4

您还可以避免增加字段范围;使用以下代码:

BitmapField bitmapField = new BitmapField(bitmap, BitmapField.FOCUSABLE)
{
     protected void drawFocus(Graphics graphics, boolean on) 
     {
          setSpace(5, 5);
          super.drawFocus(graphics, on);
     }       
};
于 2010-03-08T10:24:42.110 回答
3

实际上焦点在那里,但您看不到,因为焦点区域与字段的整个范围相同。如果您想查看焦点矩形,请增加字段范围。

BitmapField  bitmapField = new BitmapField(bitmap,Field.FOCUSABLE){
            protected void layout(int width, int height) {
                setExtent(bitmap.getWidth()+10, bitmap.getHeight()+10);
            }

        };
于 2010-02-23T10:23:44.103 回答
0

Ashraf 的建议是正确的,只是我会尽量避免在每个 drawFocus 调用上设置“空格”。

只需在有问题的 bitmapField 上调用一次 setSpace(int, int)成员。

于 2012-09-21T11:24:09.507 回答