как установить фокус на поле Bitmap, синий цвет не виден, ежевика - PullRequest
3 голосов
/ 23 февраля 2010

Я использую поле растрового изображения, которое содержит маленькое изображение.

Когда фокусировка появляется на этом изображении, синий цвет фокусировки не отображается, как я могу установить ширину и высоту фокусировки

мой код ::

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 даже не решает проблему

Ответы [ 3 ]

4 голосов
/ 08 марта 2010

Вы также можете избежать увеличения экстента поля; используя следующий код:

BitmapField bitmapField = new BitmapField(bitmap, BitmapField.FOCUSABLE)
{
     protected void drawFocus(Graphics graphics, boolean on) 
     {
          setSpace(5, 5);
          super.drawFocus(graphics, on);
     }       
};
3 голосов
/ 23 февраля 2010

на самом деле фокус есть, но вы не можете видеть, потому что область фокусировки такая же, как и весь экстент поля. если вы хотите видеть прямоугольник фокуса, увеличьте экстент поля.

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

        };
0 голосов
/ 21 сентября 2012

Предложение Ашрафа верное, только я бы старался избегать установки «пробела» при каждом вызове drawFocus.

просто вызовите setSpace (int, int) член один раз в рассматриваемом растровом поле.

...