PhoneScreenVerticalManager странность при входящем звонке - PullRequest
0 голосов
/ 12 января 2012

Я создаю приложение, которое прослушивает входящие вызовы, а затем добавляет поля к экрану телефона. Однако я не могу контролировать ширину полей меток или PhoneScreenVerticalManager, который я использую.Если я пытаюсь установить границу или фон на PhoneScreenVerticalManager, то ничего не происходит вообще.Также кажется, что USE_ALL_WIDTH в конструкторе labelfield ничего не меняет.И выровняв поля надписей по левому краю, я тоже не смог приступить к работе (попробовал DrawStyle.Left в конструкторе полей надписей).

вот мой код:

public Incoming(int callId) {     
     this.callId = callId;
     PhoneCall call = Phone.getCall(callId);  
  String number = call.getPhoneNumber();
  Vector contact = ContactUtil.getContactByPhone(number); 
        screenModel = new ScreenModel(callId);
        phoneScreenPortrait = screenModel.getPhoneScreen(PhoneScreen.PORTRAIT, PhoneScreen.INCOMING);
        final XYRect rect = screenModel.getDimensions(PhoneScreen.PORTRAIT, PhoneScreen.INCOMING);
 PhoneScreenVerticalManager manager = new PhoneScreenVerticalManager()
         {

          public void paint(Graphics g) {
                 g.setColor(Color.BLACK);
                 g.setBackgroundColor(Color.WHITE);
                 g.clear();
                 super.paint(g);
             }

          protected void sublayout(int width, int height)
             {
                 super.sublayout(rect.width, height);
                 super.setExtent(rect.width, height);
             }

         };        

         manager.setBackground(BackgroundFactory.createSolidBackground(Color.RED));
         manager.setBorder(BorderFactory.createSimpleBorder(new XYEdges(BORDER_PADDING, BORDER_PADDING, BORDER_PADDING, BORDER_PADDING), Border.STYLE_SOLID));

         String s = res.getString(FOUND_IN_CONTACTS);
         LabelField header = new LabelField(s, LabelField.USE_ALL_WIDTH)
         {
          protected void layout(int width, int height)
             {
                 super.layout(rect.width, height);
                 setExtent(rect.width, height);
             }

          public void paint(Graphics g) {
                 g.setColor(Color.BLACK);
                 g.setBackgroundColor(Color.WHITE);
                 g.clear();
                 super.paint(g);
             }
         };
         header.setBackground(BackgroundFactory.createSolidBackground(Color.WHITE));
         manager.add(header);
         LabelField label = new LabelField(contact.firstElement().toString(), LabelField.USE_ALL_WIDTH)
         {
          protected void layout(int width, int height)
             {
                 super.layout(rect.width, height);
                 setExtent(rect.width, height);
             }

          public void paint(Graphics g) {
                 g.setColor(Color.BLACK);
                 g.setBackgroundColor(Color.WHITE);
                 g.clear();
                 super.paint(g);
             }

         };
         label.setBackground(BackgroundFactory.createSolidBackground(Color.WHITE));
         manager.add(label);
         phoneScreenPortrait.add(manager);
        screenModel.sendAllDataToScreen();
}

Любые идеис благодарностью! 100

Спасибо

1 Ответ

1 голос
/ 03 мая 2012

хотя диспетчеры экранов телефонов получены из диспетчера полей, он не поддерживает все свойства диспетчера полей.

, поэтому решение состоит в том, чтобы настроить обычный диспетчер полей и добавить их в диспетчеры экранов телефонов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...