3

Я хочу добавить LabelField в нижней и правой части экрана в Blackberry. Для установки метки в нижней части экрана,setStatus() в Blackberry

Я использовал,

this.setStatus(lbl_version); 

, который дает выход прекрасно, но, за labelfield, фоновое изображение не установлено. Метка установлена ​​на белом фоне. Я хочу установить метку на фоновое изображение, а также на нижнюю часть экрана.

См. Следующий URL-адрес изображения, и у вас будет лучшая идея.

Заранее спасибо. Пожалуйста, помогите мне.

http://i.stack.imgur.com/5UKv6.png

ответ

2

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

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

Чтобы понять ответ, вам необходимо понять Менеджеров, используемых в MainScreen. Насколько я понимаю, существует ряд менеджеров. Один - диспетчер делегатов, используется для всего экрана. Добавив к этому:

  1. баннер менеджер, который расположен в верхней части экрана
  2. название диспетчера, который расположен под баннером менеджера
  3. Главный менеджер, и
  4. менеджер статус , который расположен в нижней части экрана .

Делегат-менеджер предоставит фон для всех других Менеджеров, если они прозрачны. Мое тестирование показывает, что фон для менеджеров для поля баннера и поля состояния прозрачен. Фон для Менеджера для поля заголовка не является - он черный, но изменение выглядит проблематичным.

В любом случае, в моем тестировании, чтобы соответствовать требованию, все, что вам нужно сделать, это установить фон Диспетчера делегата по мере необходимости и установить фон MainManager в прозрачный.

Следующий код настроен таким образом, который, как я думаю, отвечает на вопрос. Однако я также оставил ряд прокомментированных строк, которые я предлагаю вам раскомментировать и отметить эффект. Это интересно (по крайней мере, такой печальный человек, как я).

Background transparentBackground = BackgroundFactory.createSolidTransparentBackground(0, 0); 
Background gradientBackground = BackgroundFactory.createLinearGradientBackground(0X00909090, 0x00808080, 0x00E0E0E0, 0x00E8E8E8); 
getMainManager().setBackground(transparentBackground); 
getDelegate().setBackground(gradientBackground); 
// this is the same as this.setBackground(gradientBackground); 

LabelField banner = new LabelField("Hello Banner"); 
// banner.setBackground(gradientBackground); 
setBanner(banner); 

// LabelField title = new LabelField("Hello Title"); 
// title.setBackground(transparentBackground); 
// setTitle(title); 
// title.getManager().setBackground(transparentBackground); 

LabelField status = new LabelField("Hello Status"); 
// status.setBackground(gradientBackground); 
setStatus(status); 

LabelField content = new LabelField("Hello Content", LabelField.FOCUSABLE); 
content.setBackground(transparentBackground); 
add(content); 

// Following just added so that focus can be moved off the content LabelField 
add(new NullField()); 

Наконец, могу ли я рекомендовать эту статью для интересного чтения на MainScreen.
MainScreen explained

2

Во-первых, убедитесь, что ваш LabelField имеет прозрачный фон, а затем вы должны получить, чтобы увидеть то, что фон был установлен на MainScreen, содержащей его.

Во-вторых, я считаю, что вам нужно установить фон (изображение) как на самом главном экране, так и на встроенном «главном менеджере», чтобы весь экран отображал тот же фон.

Например,

public class LabelScreen extends MainScreen { 

    public LabelScreen() { 
     super(MainScreen.VERTICAL_SCROLL | MainScreen.VERTICAL_SCROLLBAR); 

     Background bg = BackgroundFactory.createSolidBackground(Color.GREEN); 
     getMainManager().setBackground(bg); 
     setBackground(bg); 

     LabelField status = new LabelField("Hello Status"); 
     status.setBackground(BackgroundFactory.createSolidTransparentBackground(0, 0)); 
     setStatus(status); 
    } 

} 

Примечание: мой пример выше использует твердый цвет фона, но она должна работать так же путь для фона изображения.

 Смежные вопросы

  • Нет связанных вопросов^_^