Как изменить фон для HorizontalFieldManager
Я хочу установить фон для HorizontalFieldManager. Пример кода, который я искал, устанавливает фон с помощью градиента для фона основного экрана.
//create gradient linear for background
this.getMainManager().setBackground(BackgroundFactory.createLinearGradientBackground(0x0099CCFF,
0x0099CCFF,0x00336699,0x00336699)
);
Затем я пытаюсь использовать тот же шаблон, чтобы установить фон для HorizontalFieldManager, так как он имеет этот метод. Но это не сработает. Вот код
HorizontalFieldManager hManager = new HorizontalFieldManager();
Bitmap bitmapImage = null;
bitmapImage = Bitmap.getBitmapResource("img/home.png");
tabHome = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
| BitmapField.HIGHLIGHT_FOCUS);
bitmapImage = Bitmap.getBitmapResource("img/in.png");
tabCheckInOut = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
| BitmapField.HIGHLIGHT_FOCUS);
bitmapImage = Bitmap.getBitmapResource("img/barcode.png");
tabBarcode = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
| BitmapField.HIGHLIGHT_FOCUS);
bitmapImage = Bitmap.getBitmapResource("img/options.png");
tabOptions = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
| BitmapField.HIGHLIGHT_FOCUS);
tabHome.setFocusListener(this);
tabCheckInOut.setFocusListener(this);
tabBarcode.setFocusListener(this);
tabOptions.setFocusListener(this);
Background topBack = BackgroundFactory.createSolidBackground(0x00606A85);
hManager.setBackground(topBack);
hManager.add(tabHome);
hManager.add(tabCheckInOut);
hManager.add(tabBarcode);
hManager.add(tabOptions);
add(hManager);
Я использую HorizontalFieldManager и добавляю 4 BitmapField, затем я использую BackgroundFactory для создания solidBackground и устанавливаю его в качестве менеджера, но когда я его запускаю, цвет фона не применяется. Пример градиента хорошо работает. Есть что-то, что я пропускаю? Пожалуйста, помогите мне.
Спасибо
1 ответ
После некоторого глубокого поиска в сети. Вот ответ, ребята
HorizontalFieldManager manager = new HorizontalFieldManager()
{
public void paint(Graphics graphics)
{
graphics.setBackgroundColor(0x000000FF);//blue
graphics.clear();
super.paint(graphics);
}
};
ОБНОВЛЕНИЕ: Вы должны использовать только Web Color, например, 0x006699FF должен работать, но 0x00606A85 не будет работать. если вы хотите определенный цвет, я рекомендую вам использовать растровое изображение.
ОБНОВЛЕНИЕ: Другое решение
HorizontalFieldManager manager = new HorizontalFieldManager(Field.USE_ALL_WIDTH);
manager.setBackground(BackgroundFactory.BackgroundFactory
.createSolidBackground(0x00cccccc));