Я немного изменил ваш код.
Сначала добавлен VerticalFieldManager
, который занимает всю высоту дисплея и выравнивает поля по вертикали.VFM содержит все ваши поля, кроме BitmapField.Затем добавили HorizontalFieldManager
, который занимает оставшуюся часть доступной высоты дисплея.Наконец, BitmapField добавляется в HFM со стилем FIELD_BOTTOM , который указывает HFM выровнять поле по низу менеджера.
Если вы хотите добавить больше изображений в нижнюю частьна экране, просто создайте их в стиле FIELD_BOTTOM и добавьте их в HFM.
Проверьте этот ответ для получения дополнительной информации о выравнивании полей.
Вот ваш код с вышеупомянутыммодификации
public NativeUI() {
//The background image.
backgroundBitmap = Bitmap.getBitmapResource("cryptodemo_jde.png");
MainScreen mainScreen = new MainScreen(MainScreen.NO_VERTICAL_SCROLL | MainScreen.NO_HORIZONTAL_SCROLL);
VerticalFieldManager verticalFieldManager = new VerticalFieldManager(Manager.NO_VERTICAL_SCROLL | Manager.NO_HORIZONTAL_SCROLL |
Manager.USE_ALL_HEIGHT | Manager.USE_ALL_WIDTH ) {
//Override the paint method to draw the background image.
public void paint(Graphics graphics) {
//Draw the background image and then call paint.
graphics.drawBitmap(0, 0, 240, 240, backgroundBitmap, 0, 0);
super.paint(graphics);
}
};
BasicEditField bef = new BasicEditField("To: ","",50,BasicEditField.FILTER_EMAIL);
//The LabelField will show up through the transparent image.
LabelField labelField = new LabelField("This is a label");
HorizontalFieldManager horizontalFieldManager = new HorizontalFieldManager(HorizontalFieldManager.USE_ALL_WIDTH | HorizontalFieldManager.USE_ALL_HEIGHT);
//A bitmap field with a transparent image.
//The background image will show up through the transparent BitMapField image.
BitmapField bitmapField = new BitmapField(Bitmap.getBitmapResource("pimdemo_jde.png"), Field.FIELD_BOTTOM);
horizontalFieldManager.add(bitmapField);
//Add the fields to the manager.
verticalFieldManager.add(bef);
verticalFieldManager.add(labelField);
verticalFieldManager.add(horizontalFieldManager);
//Add the manager to the screen.
mainScreen.add(verticalFieldManager);
//Push the screen.
pushScreen(mainScreen);
}