tabla restaurar recuperar mostrar herramientas google contenido como chrome barra arcmap activar user-interface blackberry menu custom-controls

user interface - restaurar - BlackBerry-Barra de herramientas del menú personalizado



mostrar barra de herramientas google chrome (1)

Lo que tendrá que hacer es:

  • crear SizebleVFManager (contentManager) como una extensión de VerticalFieldManager
  • configure el ancho y el alto de la pantalla = (altura de visualización - altura del menú) para contentManager
  • agregar contentManager a la pantalla
  • crear HorizontalFieldManager (menuManager)
  • crear BitmapButtonField (menuButton) como una extensión de ButtonField
  • establecer FieldChangeListeners a menuButtons
  • agregar menuButtons a menuManager
  • agregar menuManager a la pantalla

Muestra de SizebleVFManager:

class SizebleVFManager extends VerticalFieldManager { int mWidth = 0; int mHeight = 0; public SizebleVFM(int width, int height, long style) { super(style); mWidth = width; mHeight = height; } public SizebleVFM(int width, int height) { mWidth = width; mHeight = height; } public int getPreferredWidth() { return mWidth; } public int getPreferredHeight() { return mHeight; } protected void sublayout(int width, int height) { width = getPreferredWidth(); height = getPreferredHeight(); super.sublayout(width, height); setExtent(width, height); } }

...

SizebleVFManager contentManager = new SizebleVFManager(Display.getWidth(), Display.getHeight(), VERTICAL_SCROLL|VERTICAL_SCROLLBAR);

Ver también
muestra de BitmapButtonField y barra de herramientas

PD, aunque es mejor usar el menú estándar ...

ACTUALIZAR

Si desea deshabilitar la funcionalidad predeterminada del menú, cancele el menú MENÚ:

protected boolean keyDown(int keycode, int time) { if(Keypad.KEY_MENU == Keypad.key(keycode)) { return true; } else return super.keyDown(keycode, time); }

ACTUALIZAR

He instalado esa maravillosa aplicación meteorológica y entiendo que esta muestra puede ser más parecida con varias mejoras:

  • utilice CyclicHFManager como una extensión de HorizontalFieldManager
  • show / hide menuManager en el botón de menú haga clic en

CyclicHFManager es un administrador que se mantendrá enfocado en el mismo lugar visualmente y ejecutar todos los campos, en ciclo. Al igual que en BlackBerry - Custom centrado cíclico HorizontalFieldManager

class CyclicHFManager extends HorizontalFieldManager { int mFocusedFieldIndex = 0; boolean mCyclicTurnedOn = false; public void focusChangeNotify(int arg0) { super.focusChangeNotify(arg0); if (mCyclicTurnedOn) { int focusedFieldIndexNew = getFieldWithFocusIndex(); if (focusedFieldIndexNew != mFocusedFieldIndex) { if (focusedFieldIndexNew - mFocusedFieldIndex > 0) switchField(0, getFieldCount() - 1); else switchField(getFieldCount() - 1, 0); } } else { mFocusedFieldIndex = getFieldWithFocusIndex(); } } private void switchField(int prevIndex, int newIndex) { Field field = getField(prevIndex); delete(field); insert(field, newIndex); } }

texto alternativo http://img109.imageshack.us/img109/6176/toolbarj.jpg

Y todo el código de muestra:

abstract class AScreen extends MainScreen { boolean mMenuEnabled = false; SizebleVFManager mContentManager = null; CyclicHFManager mMenuManager = null; public AScreen() { mContentManager = new SizebleVFManager(Display.getWidth(), Display .getHeight(), VERTICAL_SCROLL | VERTICAL_SCROLLBAR); add(mContentManager); // mMenuManager = new CyclicHFManager(Display.getWidth(), 60); mMenuManager = new CyclicHFManager(); mMenuManager.setBorder(BorderFactory.createBevelBorder(new XYEdges(4, 0, 0, 0), new XYEdges(Color.DARKBLUE, 0, 0, 0), new XYEdges( Color.WHITE, 0, 0, 0))); mMenuManager.setBackground(BackgroundFactory .createLinearGradientBackground(Color.DARKBLUE, Color.DARKBLUE, Color.LIGHTBLUE, Color.LIGHTBLUE)); for (int i = 0; i < 10; i++) { Bitmap nBitmap = new Bitmap(60, 60); Graphics g = new Graphics(nBitmap); g.setColor(Color.DARKBLUE); g.fillRect(0, 0, 60, 60); g.setColor(Color.WHITE); g.drawRect(0, 0, 60, 60); Font f = g.getFont().derive(Font.BOLD, 40); g.setFont(f); String text = String.valueOf(i); g.drawText(text, (60 - f.getAdvance(text)) >> 1, (60 - f .getHeight()) >> 1); Bitmap fBitmap = new Bitmap(60, 60); g = new Graphics(fBitmap); g.setColor(Color.DARKBLUE); g.fillRect(0, 0, 60, 60); g.setColor(Color.GOLD); g.drawRect(0, 0, 60, 60); g.setFont(f); g.drawText(text, (60 - f.getAdvance(text)) >> 1, (60 - f .getHeight()) >> 1); BitmapButtonField button = new BitmapButtonField(nBitmap, fBitmap, fBitmap); button.setCookie(String.valueOf(i)); button.setPadding(new XYEdges(0, 18, 0, 18)); button.setChangeListener(new FieldChangeListener() { public void fieldChanged(Field field, int context) { Dialog.inform("Button # " + (String) field.getCookie()); } }); mMenuManager.add(button); } } protected boolean keyDown(int keycode, int time) { if (Keypad.KEY_MENU == Keypad.key(keycode)) { if (mMenuManager.getManager() != null) { delete(mMenuManager); mMenuManager.mCyclicTurnedOn = false; mContentManager.updateSize(Display.getWidth(), Display .getHeight()); } else { add(mMenuManager); mMenuManager.getField(2).setFocus(); mMenuManager.mCyclicTurnedOn = true; mContentManager.updateSize(Display.getWidth(), Display .getHeight() - mMenuManager.getHeight()); } return true; } else return super.keyDown(keycode, time); } } class FirstScreen extends AScreen { public FirstScreen() { mContentManager.add(new LabelField("This is a first screen")); } } public class ToolbarMenuApp extends UiApplication { public ToolbarMenuApp() { pushScreen(new FirstScreen()); } public static void main(String[] args) { (new ToolbarMenuApp()).enterEventDispatcher(); } }

Soy un principiante en la programación de BlackBerry, tengo que reemplazar en mi aplicación el menú predeterminado (cuando presiona el botón de menú) mediante un menú personalizado, horizontal. Lo mejor para describir es que quiero el mismo resultado que la aplicación WeatherEye para BlackBerry ...

texto alternativo http://www.blackberrybing.com/resource/pics/201002/WeatherEye-OS-45.jpg

Sé cómo crear el menú predeterminado, ¡pero este no tengo ni idea! Gracias,