Blackberry Java SDK

download Blackberry Java SDK

of 161

Transcript of Blackberry Java SDK

BlackBerry Java SDKUI and Navigation Versin: 6.0Gua de desarrollo

Publicado: 2010-12-21 SWD-1239696-1223125741-005

Contenido1 Crear una interfaz de usuario que sea coherente con las interfaces de usuario estndar de BlackBerry........ 2 Escritura y navegacin del usuario de dispositivos BlackBerry......................................................................... Pantalla tctil.................................................................................................................................................... Bola de desplazamiento o panel tctil.............................................................................................................. Sensibilidad de la bola de desplazamiento................................................................................................ Movimiento de la bola de desplazamiento............................................................................................... Rueda de desplazamiento................................................................................................................................. Teclado.............................................................................................................................................................. Mtodos de interaccin en dispositivos BlackBerry......................................................................................... 3 Pantallas............................................................................................................................................................ Clases Screen.................................................................................................................................................... Gestionar un rea de dibujo............................................................................................................................. Crear una transicin de pantalla....................................................................................................................... Ejemplo de cdigo: crear una transicin de pantalla................................................................................ Especificar la orientacin y la direccin de la pantalla..................................................................................... Recuperar la orientacin de la pantalla tctil............................................................................................ Restringir la direccin de la pantalla tctil................................................................................................. Recibir una notificacin cuando el tamao del rea de dibujo de la pantalla tctil cambie..................... 4 Acelermetro.................................................................................................................................................... Tipos de datos del acelermetro...................................................................................................................... Recuperar datos del acelermetro................................................................................................................... Recuperar los datos del acelermetro a intervalos especficos........................................................................ Consultar al acelermetro cuando la aplicacin se encuentra en primer plano.............................................. Consultar al acelermetro cuando la aplicacin se encuentra en segundo plano........................................... Almacenar las lecturas del acelermetro en un bfer...................................................................................... Recuperar las lecturas del acelermetro desde el bfer.................................................................................. Obtener la hora a la que se efectu una lectura del acelermetro.................................................................. 5 Eventos............................................................................................................................................................. Responder a eventos de navegacin................................................................................................................ Determinar el tipo de mtodo de entrada....................................................................................................... Modelos de interaccin con la pantalla tctil................................................................................................... Responder a los eventos de pantalla tctil....................................................................................................... Responder a eventos de sistema mientras el usuario toca la pantalla...................................................... Responder a un usuario deslizando rpidamente un dedo hacia arriba en la pantalla............................. 6 7 7 9 9 9 10 10 10 12 12 13 14 15 16 18 18 18 19 19 19 20 21 21 22 23 23 24 24 24 25 26 27 27

Responder a un usuario deslizando rpidamente un dedo hacia abajo en la pantalla............................. Responder a un usuario deslizando un dedo hacia la izquierda rpidamente en la pantalla.................... Responder a un usuario deslizando un dedo hacia la derecha rpidamente en la pantalla..................... Responder a un usuario haciendo clic en la pantalla................................................................................ Responder a un usuario tocando la pantalla dos veces rpidamente....................................................... Responder a un usuario tocando y arrastrando un elemento en la pantalla............................................ Responder a un usuario tocando la pantalla ligeramente......................................................................... Responder a una accin de desplazamiento............................................................................................. Responder a un usuario tocando la pantalla en dos ubicaciones al mismo tiempo.................................. Gestos de pellizco............................................................................................................................................. Activar los gestos para pellizcar................................................................................................................. Desplazamientos con paneles tctiles.............................................................................................................. Activar los deslizamientos que los usuarios realizan en el panel tctil..................................................... Inyeccin de eventos........................................................................................................................................ 6 API de marco de comandos.............................................................................................................................. Utilizar un comando con un componente de la interfaz de usuario................................................................. Utilizar un comando en una o ms aplicaciones............................................................................................... 7 Disponer los componentes de la interfaz de usuario....................................................................................... Distribuir los componentes de la interfaz de usuario....................................................................................... Crear un diseo de cuadrcula.......................................................................................................................... Crear un diseo de cuadrcula................................................................................................................... Mostrar campos en un par temporal de gestores............................................................................................ Mostrar los valores ButtonField y LabelField temporalmente en la parte superior e inferior de la pantalla ................................................................................................................................................................... Mostrar un campo en una posicin absoluta en la pantalla............................................................................. Mostrar una etiqueta en una posicin absoluta en la pantalla................................................................. Ejemplo de cdigo: mostrar una etiqueta en una posicin absoluta en la pantalla.................................. 8 Componentes de la interfaz de usuario............................................................................................................ Agregar un componente de interfaz de usuario a una pantalla....................................................................... Alinear un campo con una lnea de texto......................................................................................................... Botones............................................................................................................................................................. Prctica recomendada: implementar botones.......................................................................................... Crear un botn........................................................................................................................................... Casillas de verificacin...................................................................................................................................... Prctica recomendada: implementar casillas de verificacin.................................................................... Crear una casilla de verificacin................................................................................................................

28 29 29 30 31 31 32 32 33 34 34 35 36 37 38 39 40 43 44 44 46 48 48 50 51 52 53 53 53 53 54 54 55 55 56

Crear un mapa de bits....................................................................................................................................... Crear un campo personalizado......................................................................................................................... Creacin de un campo para mostrar contenido Web....................................................................................... Mostrar contenido HTML en un campo de navegador.............................................................................. Mostrar contenido HTML de una pgina Web en un campo de navegador.............................................. Mostrar contenido HTML de un recurso en su aplicacin......................................................................... Configurar un campo de navegador.......................................................................................................... Enviar datos de formularios a una direccin Web en un campo de navegador........................................ Cuadros de dilogo........................................................................................................................................... Prctica recomendada: implementar cuadros de dilogo......................................................................... Crear un cuadro de dilogo....................................................................................................................... Listas desplegables........................................................................................................................................... Prctica recomendada: implementar listas desplegables......................................................................... Crear una lista desplegable........................................................................................................................ Etiquetas........................................................................................................................................................... Prctica recomendada: implementar etiquetas........................................................................................ Crear una etiqueta de texto...................................................................................................................... Listas y tablas.................................................................................................................................................... Prctica recomendada: implementar listas y tablas.................................................................................. Crear un cuadro de lista............................................................................................................................. Botones de opcin............................................................................................................................................ Prctica recomendada: implementar botones de opcin......................................................................... Crear un botn de opcin.......................................................................................................................... Indicadores de actividad e indicadores de progreso........................................................................................ Prctica recomendada: implementar indicadores de actividad e indicadores de progreso...................... Indicar el progreso de la actividad o de la tarea........................................................................................ Colectores......................................................................................................................................................... Prctica recomendada: implementar colectores....................................................................................... Crear un colector de fechas....................................................................................................................... Crear un colector de archivos.................................................................................................................... Buscar............................................................................................................................................................... Prctica recomendada: implementar bsquedas...................................................................................... Crear un campo de bsqueda.................................................................................................................... Campos de texto con la funcin Autocompletar....................................................................................... Casillas de seleccin numrica.......................................................................................................................... Crear una casilla de seleccin numrica.................................................................................................... Prctica recomendada: implementar casillas de seleccin numrica....................................................... Campos de texto............................................................................................................................................... Prctica recomendada: implementar campos de texto............................................................................

58 58 61 61 62 64 65 67 69 70 72 72 73 73 76 76 76 76 79 79 81 82 82 84 85 86 93 95 95 97 100 102 102 104 110 111 113 113 115

Crear un campo de texto........................................................................................................................... Crear un campo de fecha........................................................................................................................... Crear un campo de contrasea................................................................................................................. Vistas de rbol.................................................................................................................................................. Prctica recomendada: implementar vistas de rbol................................................................................ Crear un campo para mostrar una vista de rbol...................................................................................... 9 Imgenes........................................................................................................................................................... Uso de imgenes cifradas................................................................................................................................. Acceder a una imagen cifrada a travs de un flujo de entrada................................................................. Cifrar una imagen...................................................................................................................................... Mostrar una imagen cifrada...................................................................................................................... Especificar el tamao de la pantalla de una imagen cifrada..................................................................... Especificar el modo de descodificacin de una imagen............................................................................ Visualizacin de una imagen acercndola, alejndola y desplazndola........................................................... Cdigo de ejemplo: visualizacin de una imagen acercndola, alejndola y desplazndola.................... Mostrar una imagen acercndola, alejndola y desplazndola................................................................. Visualizacin de una fila de imgenes para realizar desplazamientos............................................................. Ejemplo de cdigo: visualizar una fila de imgenes para realizar desplazamientos................................. Mostrar una fila de imgenes para realizar desplazamientos................................................................... 10 Opciones de men............................................................................................................................................ Crear un men.................................................................................................................................................. Ejemplo de cdigo: crear un men............................................................................................................ Prctica recomendada: implementar mens.................................................................................................... Submens......................................................................................................................................................... Prctica recomendada: implementar submens....................................................................................... Crear un submen..................................................................................................................................... Ejemplo de cdigo: crear un submen...................................................................................................... Mens emergentes........................................................................................................................................... Prctica recomendada: implementar mens emergentes........................................................................ Acerca de la colocacin de elementos en los mens emergentes............................................................ Compatibilidad con los mens contextuales heredados........................................................................... Crear un men emergente........................................................................................................................ Agregar un elemento de men a una aplicacin de BlackBerry Device Software............................................ Agregar un elemento de men a una aplicacin de BlackBerry Device Software..................................... Cambiar la apariencia de un men................................................................................................................... Cambiar la apariencia de un men............................................................................................................ Ejemplo de cdigo: cambiar la apariencia de un men.............................................................................

115 116 117 117 118 118 120 120 120 120 121 121 121 121 122 122 123 123 124 127 127 128 129 129 131 131 133 134 135 136 136 137 142 142 143 143 145

11 Fuentes personalizadas..................................................................................................................................... 147 Instalar y utilizar una fuente personalizada en una aplicacin BlackBerry Java Application............................ 147 Ejemplo de cdigo: instalar y utilizar una fuente personalizada en una aplicacin BlackBerry Java Application .......................................................................................................................................................................... 148 12 Verificacin ortogrfica.................................................................................................................................... 150 Agregar la funcionalidad de verificacin ortogrfica........................................................................................ 150 Escuchar un evento de verificacin ortogrfica................................................................................................ 151 13 Recursos relacionados...................................................................................................................................... 152 14 Glosario............................................................................................................................................................. 153 15 Comentarios..................................................................................................................................................... 154 16 Historial de revisin del documento................................................................................................................. 155 17 Aviso legal......................................................................................................................................................... 157

Gua de desarrollo

Crear una interfaz de usuario que sea coherente con las interfaces de usuario estndar de BlackBerry

Crear una interfaz de usuario que sea coherente con las interfaces de usuario estndar de BlackBerry

1

Puede utilizar las API estndar de MIDP y las API de la interfaz de usuario de BlackBerry para crear la interfaz de usuario de BlackBerry Java Application. Los componentes de la interfaz de usuario en las API de la interfaz de usuario de BlackBerry se han diseado para proporcionar diseos y comportamientos que sean consistentes con las aplicaciones de BlackBerry Device Software. El uso de estas API no slo le permite utilizar los componentes con los que los usuarios de BlackBerry estn familiarizados, sino que tambin le ahorrar tiempo puesto que no tendr que crear dichos componentes usted mismo. Los componentes de la pantalla pueden proporcionar un diseo de pantalla estndar, un men predeterminado y un comportamiento estndar cuando el usuario del dispositivo BlackBerry pulsa la tecla Escape, hace clic en el panel tctil o toca la pantalla. Los componentes del campo pueden proporcionar elementos de interfaz de usuario estndar para la seleccin de fechas, los botones de opcin, las casillas de verificacin, las listas, los campos de texto, las etiquetas y los controles de la barra de progreso. Los administradores de diseo pueden proporcionar una aplicacin con la capacidad de distribuir los componentes en una pantalla de dispositivo BlackBerry de forma estndar, tanto horizontalmente como verticalmente, o en un eje izquierda a derecha.

Puede utilizar las API de la interfaz de usuario de BlackBerry para crear una interfaz de usuario que incluya tablas, cuadrcula y otras caractersticas especializadas. Puede utilizar un modelo de evento de Java estndar para recibir y responder a tipos especficos de eventos. Una aplicacin del dispositivo BlackBerry puede recibir y responder a los eventos de usuario, como cuando el usuario hace clic en la rueda de desplazamiento o escribe en el teclado, y a eventos de sistema, como las alertas globales, los cambios del reloj y las conexiones del puerto USB.

6

Gua de desarrollo

Escritura y navegacin del usuario de dispositivos BlackBerry

Escritura y navegacin del usuario de dispositivos BlackBerry

2

Los dispositivos BlackBerry incluyen un teclado, una rueda o bola de desplazamiento, o un panel tctil y una tecla Escape para la escritura y navegacin. En dispositivos BlackBerry con una pantalla tctil SurePress, hacer clic en la pantalla es el equivalente a hacer clic en la bola o en la rueda de desplazamiento. BlackBerry Java Application debe seguir el siguiente modelo de escritura y navegacin en la medida de lo posible. Al hacer clic en la rueda o bola de desplazamiento o en el panel tctil, normalmente se invoca un men. Al pulsar la tecla Escape se cancelan acciones o se vuelve a la pantalla anterior. Al pulsar la tecla Escape varias veces los usuarios vuelven a la pantalla de inicio. Manteniendo pulsada la tecla Escape se cierra el navegador o la aplicacin Multimedia.

De forma predeterminada, los objetos de pantalla de BlackBerry ofrecen esta funcionalidad sin personalizacin; sin embargo, debe agregar elementos del men, as como una interfaz de usuario adicional y lgica de navegacin.

Pantalla tctilEn dispositivos BlackBerry con pantalla tctil SurePress, los usuarios utilizan un dedo para interactuar con las aplicaciones del dispositivo. Los usuarios escriben texto y navegan a travs de las pantallas realizando distintas acciones en la pantalla tctil. Los usuarios tambin pueden realizar acciones haciendo clic en los iconos de la barra de atajos o pulsando la tecla Men. En dispositivos BlackBerry con una pantalla tctil, los usuarios pueden realizar las siguientes acciones: Accin tocar la pantalla ligeramente Resultado Esta accin selecciona un elemento. En un campo de texto, si los usuarios tocan la pantalla cerca del cursor, se muestra un cuadro sealado alrededor del cursor. Este cuadro ayuda a los usuarios a volver a colocar el cursor ms fcilmente. En las aplicaciones que son compatibles con una vista de pantalla completa, por ejemplo, BlackBerry Maps y BlackBerry Browser, esta accin oculta y muestra la barra de atajos. En una pgina Web, en un mapa, en una imagen o en un archivo adjunto de presentacin, esta accin acerca la pgina Web, el mapa, la imagen o el archivo adjunto de presentacin. En la barra de atajos, esta accin muestra una sugerencia que describe la accin que el icono representa.

puntear en la pantalla

puntear en la pantalla dos veces

mantener un dedo sobre un elemento

7

Gua de desarrollo

Pantalla tctil

Accin

Resultado En una lista de mensajes, si los usuarios mantienen un dedo sobre el emisor o el asunto de un mensaje, el dispositivo BlackBerry busca el emisor o el asunto. tocar y arrastrar un elemento sobre Esta accin mueve el contenido en la pantalla en la direccin la pantalla correspondiente. Por ejemplo, cuando los usuarios tocan y arrastran un elemento del men, la lista de elementos del men se mueve en la misma direccin. En un campo de texto, esta accin mueve el cuadro sealado y el cursor en la misma direccin. Esta accin selecciona el texto o la lista de elementos, por ejemplo, mensajes, entre las dos ubicaciones. Para agregar o eliminar texto o elementos seleccionados, los usuarios pueden tocar la pantalla en otra ubicacin. Esta accin inicia una accin. Por ejemplo, cuando los usuarios hacen clic en un elemento de una lista, aparece la pantalla que est asociada con el elemento. Esta accin equivale a hacer clic en la rueda o la bola de desplazamiento o en el panel tctil. En un mapa, en una imagen o en un archivo adjunto de presentacin, esta accin acerca el mapa, la imagen o el archivo adjunto de presentacin. En una pgina Web, esta accin acerca la pgina Web o sigue un vnculo. En un campo de texto, esta accin coloca el cursor. Si el campo contiene texto, aparece un cuadro resaltado alrededor del cursor. Al deslizar rpidamente un dedo hacia arriba se muestra la pantalla siguiente. Al deslizar rpidamente un dedo hacia abajo se muestra la pantalla anterior. Cuando aparece el teclado, al deslizar rpidamente un dedo hacia abajo se oculta el teclado y muestra la barra de atajos. Esta accin muestra la imagen o el mensaje siguiente o anterior, o bien el da, semana o mes siguiente o anterior en un calendario. En la cmara, al deslizar un dedo hacia arriba se ampla el objeto. Al deslizar un dedo hacia abajo se reduce el objeto. Esta accin ofrece una panormica de un mapa o de una pgina Web. Si los usuarios amplan una imagen, esta accin tambin nos ofrecer una panormica de la imagen. Esta accin elimina el efecto resaltado del texto o una lista de elementos. En una pgina Web, en un mapa o en una imagen, esta accin reduce la imagen un nivel. Los usuarios pueden pulsar la tecla Escape hasta retroceder a la vista original.

tocar la pantalla en dos ubicaciones al mismo tiempo

hacer clic (pulsar) en la pantalla

deslizar un dedo hacia arriba o hacia abajo rpidamente sobre la pantalla

deslizar un dedo hacia la izquierda o la derecha rpidamente sobre la pantalla deslizar un dedo hacia arriba o hacia abajo sobre la pantalla deslizar un dedo en cualquier direccin pulsar la tecla Escape

8

Gua de desarrollo

Bola de desplazamiento o panel tctil

Bola de desplazamiento o panel tctilEn dispositivos BlackBerry con bola de desplazamiento o panel tctil, la bola de desplazamiento o panel tctil es el principal control para la navegacin de usuario. Los usuarios pueden realizar las siguientes acciones: Girar la bola de desplazamiento o deslizar el dedo en el panel tctil para mover el cursor. Hacer clic en la bola de desplazamiento o panel tctil para llevar a cabo acciones predeterminadas o abrir un men contextual. Hacer clic en la bola de desplazamiento o panel tctil al tiempo que se pulsa la tecla Maysculas para seleccionar texto o bien seleccionar mensajes en una lista de mensajes.

Los dispositivos BlackBerry con una bola de desplazamiento o panel tctil tambin incluyen una tecla Men ubicada a la izquierda de la bola de desplazamiento o panel tctil. Los usuarios pueden pulsar la tecla Men para abrir un men completo de acciones disponibles.

Sensibilidad de la bola de desplazamientoLa sensibilidad de la bola de desplazamiento se refiere a la cantidad de movimiento que la bola necesita para que el sistema identifique el movimiento como un evento de navegacin y para enviar un evento de navegacin a la capa de software. El hardware del dispositivo BlackBerry mide el movimiento fsico de la bola de desplazamiento mediante unidades denominadas tics. Si el nmero de tics a lo largo de un eje supera el umbral del sistema o de una aplicacin del dispositivo BlackBerry, se enva un evento de navegacin a lo largo de ese eje en la capa del software y el sistema restablece el recuento de tics en cero. Los recuentos de tics tambin se restablecen en cero una vez se supera cierto tiempo de inactividad. Puede utilizar la API de la bola de desplazamiento para establecer la sensibilidad de la bola de desplazamiento. Una sensibilidad alta de la bola de desplazamiento equivale a un umbral de tics ms pequeo (lo que significa que pequeos movimientos de la bola de desplazamiento activarn eventos de navegacin). Una sensibilidad baja de la bola de desplazamiento equivale a un umbral mayor de tics (lo cual significa que son necesarios movimientos ms grandes de la bola de desplazamiento para generar eventos de navegacin).

Movimiento de la bola de desplazamientoPuede utilizar la API de la bola de desplazamiento para filtrar los datos de los movimientos de la bola que el hardware del dispositivo BlackBerry enva a la capa del software. La API de la bola de desplazamiento puede filtrar "el ruido de movimiento" o los movimientos no deseados. Puede utilizar tambin la API de la bola de desplazamiento para cambiar configuraciones como la aceleracin del movimiento de la bola de desplazamiento. El aumento de la configuracin de la aceleracin del movimiento de la bola de desplazamiento puede hacer que la capa de software detecte que los movimientos de la bola se mueven a una velocidad mayor que la velocidad detectada por el hardware del dispositivo BlackBerry, siempre que el usuario desplace continuamente la bola de desplazamiento. La sensibilidad de la bola de desplazamiento aumenta temporalmente a medida que el usuario desplaza la bola sin detenerse.

9

Gua de desarrollo

Rueda de desplazamiento

Rueda de desplazamientoLos dispositivos BlackBerry anteriores a BlackBerry Pearl 8100 Series utilizan una rueda de desplazamiento como control principal para la navegacin de usuario. La rueda de desplazamiento se encuentra en el lado derecho del dispositivo BlackBerry. Los usuarios pueden realizar las siguientes acciones: desplazar la rueda de desplazamiento para mover el cursor verticalmente desplazar la rueda de desplazamiento mientras pulsan la tecla Alt para mover el cursor horizontalmente hacer clic en la rueda de desplazamiento para iniciar una accin o abrir el men

TecladoLos usuarios utilizan el teclado principalmente para escribir texto. Las teclas de caracteres envan un carcter al dispositivo BlackBerry. Una tecla modificadora modifica la funcionalidad de las teclas de caracteres. Las teclas modificadoras incluyen la tecla Maysculas y la tecla Alt. Cuando los usuarios pulsan una tecla modificadora, aparece un indicador de modo de escritura en la esquina superior derecha de la pantalla. En dispositivos BlackBerry sin pantalla tctil, los usuarios tambin pueden utilizar el teclado para desplazar la pantalla (por ejemplo, para desplazar un mapa). Sin embargo, la navegacin a travs del teclado debe ser siempre una alternativa a la navegacin utilizando la rueda o la bola de desplazamiento, o bien el panel tctil. Los dispositivos BlackBerry tienen un teclado completo o un teclado reducido. En dispositivos BlackBerry con pantalla tctil SurePress, en la mayora de los casos, el teclado completo aparece en la vista horizontal y el teclado reducido aparece en la vista vertical.

Mtodos de interaccin en dispositivos BlackBerryModelo de dispositivo BlackBerry BlackBerry 7100 Series BlackBerry 8700 Series BlackBerry 8800 Series Smartphone BlackBerry Bold 9000 BlackBerry Bold 9650 smartphone Smartphone BlackBerry Bold 9700 BlackBerry Curve 8300 Series BlackBerry Curve 8500 Series Smartphone BlackBerry Curve 8900 BlackBerry Pearl 8100 Series BlackBerry Pearl Flip 8200 Series BlackBerry Storm 9500 Series10

Mtodo de interaccin rueda de desplazamiento rueda de desplazamiento bola de desplazamiento bola de desplazamiento panel tctil bola de desplazamiento panel tctil bola de desplazamiento bola de desplazamiento bola de desplazamiento pantalla tctil

Gua de desarrollo

Mtodos de interaccin en dispositivos BlackBerry

Modelo de dispositivo BlackBerry Smartphone BlackBerry Tour 9630

Mtodo de interaccin bola de desplazamiento

11

Gua de desarrollo

Pantallas

PantallasEl principal componente de la interfaz de usuario de un dispositivo BlackBerry es el objeto Screen.

3

Un dispositivo BlackBerry puede tener varias pantallas abiertas al mismo tiempo, pero slo se podr mostrar una pantalla al mismo tiempo. BlackBerry Java Virtual Machine mantiene un conjunto ordenado de objetos Screen en una pila de visualizacin. El objeto Screen situado en la parte superior de la pila es el objeto Screen activo que ve el usuario del dispositivo BlackBerry. Cuando una aplicacin del dispositivo BlackBerry muestra una pantalla, insertar el objeto Screen en la parte superior de la pila. Cuando una aplicacin del dispositivo BlackBerry cierra una pantalla, retirar el objeto Screen de la parte superior de la pila y mostrar el siguiente objeto Screen de la pila, redibujando la pantalla tal como sea necesario. Cada objeto Screen puede aparecer slo una vez en la pila de visualizacin. BlackBerry JVM agrega una excepcin en tiempo de conexin si el objeto Screen que la aplicacin del dispositivo BlackBerry inserta en la pila ya existe. La aplicacin del dispositivo BlackBerry deber retirar un objeto Screen de la pila de visualizacin cuando el usuario finalice el proceso de interaccin con la pantalla, de forma que la aplicacin del dispositivo BlackBerry pueda utilizar la memoria de forma eficaz. Debe utilizar slo algunos objetos Screen de modo al mismo tiempo, ya que cada pantalla utiliza un subproceso independiente. Las API de la interfaz de usuario inicializan objetos Screen sencillos. Una vez haya creado un objeto Screen, podr agregar campos y un men y mostrar el objeto Screen al usuario insertndolo en la pila de visualizacin. Puede cambiar la interfaz de usuario del dispositivo BlackBerry e implementar nuevos tipos de campos, tal como considere necesario. Tambin puede agregar navegacin personalizada. La clase Screen no puede implementar la desambiguacin, sta es necesaria para los mtodos de entrada complejos, por ejemplo, teclados internacionales. Para la integracin de los distintos mtodos de entrada, puede ampliar la clase Field o una de sus subclases. No debe utilizar objetos Screen para escribir texto.

Clases ScreenClaseScreen

FullScreen

MainScreen

Descripcin Puede utilizar la clase Screen para crear una pantalla y utilizar un gestor de diseo para ordenar los componentes de la interfaz de usuario en la pantalla. Puede definir un tipo especfico de pantalla utilizando los estilos que definen las constantes en la superclase Field. Puede utilizar la clase FullScreen para crear una pantalla vaca a la que agregar componentes de la interfaz de usuario en un diseo vertical estndar. Si desea utilizar otro estilo de diseo, por ejemplo, horizontal o diagonal, puede utilizar la clase Screen en su lugar y agregar un gestor de diseo a la misma. Puede utilizar la clase MainScreen para crear una pantalla con los siguientes componentes estndar de la interfaz de usuario:

12

Gua de desarrollo

Gestionar un rea de dibujo

Clase

Descripcin ttulo de la pantalla predeterminada, con un valor SeparatorField despus del ttulo seccin desplazable principal contenida en un valorVerticalFieldManager

men predeterminado con un elemento de men Cerrar accin de cierre predeterminada que cierra la pantalla cuando el usuario del dispositivo BlackBerry hace clic en el elemento de men Cerrar o pulsa la tecla Escape

Debe considerar el uso de un objeto MainScreen para la primera pantalla de la aplicacin del dispositivo BlackBerry con el fin de mantener la coherencia con otras aplicaciones del dispositivo BlackBerry.

Gestionar un rea de dibujoEl objeto Graphics representa la superficie de dibujo al completo disponible en la aplicacin del dispositivo BlackBerry. Para limitar esta rea, divdalo en objetos XYRect. Cada XYPoint representa un punto en la pantalla, que est compuesto por una coordenada X y una coordenada Y. 1. Importe las siguientes clases: net.rim.device.api.ui.Graphics net.rim.device.api.ui.XYRect net.rim.device.api.ui.XYPoint Cree objetos XYPoint, para representar el punto izquierdo superior y el punto derecho inferior de un rectngulo. Cree un objeto XYRect mediante los objetos XYPoint, para crear una regin de corte rectangular.XYPoint bottomRight = new XYPoint(50, 50); XYPoint topLeft = new XYPoint(10, 10); XYRect rectangle = new XYRect(topLeft, bottomRight);

2.

3.

Invoque Graphics.pushContext() para realizar llamadas de dibujo que especifiquen que el origen de la regin no debe ajustar el desplazamiento del dibujo. Invoque Graphics.pushContext() para insertar la regin de corte rectangular en la pila de contexto. Invoque Graphics.drawRect() para dibujar un rectngulo, a continuacin, invoque Graphics.fillRect() para rellenar el rectngulo. Invoque Graphics.popContext () para extraer el contexto actual de la pila de contexto.graphics.pushContext(rectangle, 0, 0); graphics.fillRect(10, 10, 30, 30); graphics.drawRect(15, 15, 30, 30); graphics.popContext(); graphics.drawRect(15, 15, 30, 30); graphics.pushContext(rectangle, 0, 0); graphics.fillRect(10, 10, 30, 30); graphics.drawRect(15, 15, 30, 30); graphics.popContext(); graphics.drawRect(15, 15, 30, 30); 13

Gua de desarrollo

Crear una transicin de pantalla

4.

Invoque pushRegion() y especifique que el origen de la regin debe ajustar el desplazamiento del dibujo. Invoque Graphics.drawRect() para dibujar un rectngulo e invoque Graphics.fillRect() para rellenar el rectngulo. Invoque Graphics.popContext() para extraer el contexto actual de la pila de contexto.graphics.pushRegion(rectangle); graphics.fillRect(10, 10, 30, 30); graphics.drawRect(15, 15, 30, 30); graphics.popContext();

5. 6.

Especifique la parte del objeto Graphics que se va a insertar en la pila. Despus de invocar pushContext() (o pushRegion()), proporcione la parte del objeto Graphics que se va a invertir.graphics.pushContext(rectangle); graphics.invert(rectangle); graphics.popContext();

7.

Invoque translate(). El valor XYRect se traduce de su origen de (1, 1) a un origen de (20, 20). Despus de la traduccin, la parte inferior del objeto XYRect se ampla ms all de los lmites del contexto de Graphics y lo recorta.XYRect rectangle = new XYRect(1, 1, 100, 100); XYPoint newLocation = new XYPoint(20, 20); rectangle.translate(newLocation);

Crear una transicin de pantallaPuede crear una transicin de pantalla para aplicar un efecto visual que aparezca cuando su aplicacin abra o cierre una pantalla en un dispositivo BlackBerry. Puede crear los siguientes tipos de transiciones de pantalla para su aplicacin mediante la clase net.rim.device.api.ui.TransitionContext. TransicinTRANSITION_FADE

TRANSITION_SLIDE

TRANSITION_WIPE TRANSITION_ZOOM TRANSITION_NONE

Descripcin Esta transicin revela o elimina una pantalla hacindola aparecer o desaparecer. Esta transicin de la pantalla crea un efecto visual de atenuacin al cambiar la opacidad de la pantalla. Esta transicin revela o elimina una pantalla desplazndola y hacindola aparecer o desaparecer de la pantalla del dispositivo. Puede utilizar atributos para especificar que tanto la pantalla nueva como la actual se deslicen, para crear un efecto en el que ambas pantallas parezcan moverse o para que la nueva pantalla se deslice sobre la actual. Esta transicin revela o elimina una pantalla simulando el borrado y hacindola aparecer o desaparecer de la pantalla del dispositivo. Esta transicin revela o elimina una pantalla acercndola o alejndola en la pantalla del dispositivo. No ocurre ninguna transicin.

14

Gua de desarrollo

Crear una transicin de pantalla

Cada tipo de la transicin de pantalla tiene atributos que puede utilizar para personalizar los efectos visuales de la transicin de pantalla. Por ejemplo, puede personalizar un efecto de deslizamiento para que una pantalla se deslice desde la parte inferior de la pantalla en el dispositivo a la parte superior de la misma. Si no personaliza la transicin de pantalla, la aplicacin utiliza los atributos predeterminados. Para obtener ms informacin acerca de los atributos predeterminados, consulte la referencia de API de BlackBerry Java Development Environment. Despus de crear una transicin de pantalla, debe registrarla en la aplicacin invocando UiEngineInstance.setTransition() y especificar la pantalla de salida que se va a eliminar y la pantalla de entrada que va a aparecer, los eventos que dan lugar a la transicin y la transicin que se va a mostrar. Para descargar una aplicacin de ejemplo que demuestre cmo utilizar las transiciones de pantalla, visite www.blackberry.com/go/screentransitionssample. Para obtener ms informacin acerca de las transiciones de pantalla, consulte la referencia API de BlackBerry Java Development Environment. Nota: El tema del dispositivo BlackBerry controla los efectos visuales que se muestran cuando un usuario abre una aplicacin. Para obtener ms informacin, consulte la Gua del usuario de BlackBerry Theme Studio .

Ejemplo de cdigo: crear una transicin de pantallaEl siguiente ejemplo de cdigo muestra una transicin de pantalla y una transicin con atenuacin. Siempre que el usuario abre la aplicacin, la primera pantalla aparece en el dispositivo BlackBerry y muestra un botn. Cuando el usuario hace clic en el botn, una segunda pantalla se introduce sobre la anterior desde la derecha. La segunda pantalla atena automticamente la primera pasados dos segundos.import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import net.rim.device.api.ui.decor.*; public class ScreenTransitionSample extends UiApplication implements FieldChangeListener { private Screen _secondaryScreen; private Runnable _popRunnable; public static void main(String[] args) { ScreenTransitionSample theApp = new ScreenTransitionSample (); theApp.enterEventDispatcher(); } public ScreenTransitionSample () { _secondaryScreen = new FullScreen(); _secondaryScreen.setBackground( BackgroundFactory.createSolidBackground(Color.LIGHTBLUE) ); LabelField labelField = new LabelField("The screen closes automatically in two seconds by using a fade transition"); _secondaryScreen.add(labelField); TransitionContext transition = new TransitionContext(TransitionContext.TRANSITION_SLIDE); transition.setIntAttribute(TransitionContext.ATTR_DURATION, 500); transition.setIntAttribute(TransitionContext.ATTR_DIRECTION, TransitionContext.DIRECTION_RIGHT); transition.setIntAttribute(TransitionContext.ATTR_STYLE, TransitionContext.STYLE_PUSH); UiEngineInstance engine = Ui.getUiEngineInstance(); engine.setTransition(null, _secondaryScreen, UiEngineInstance.TRIGGER_PUSH,

15

Gua de desarrollo

Especificar la orientacin y la direccin de la pantalla

}

} public void fieldChanged(Field field, int context) { pushScreen(_secondaryScreen); invokeLater(_popRunnable, 2000, false); }

transition); transition = new TransitionContext(TransitionContext.TRANSITION_FADE); transition.setIntAttribute(TransitionContext.ATTR_DURATION, 500); transition.setIntAttribute(TransitionContext.ATTR_KIND, TransitionContext.KIND_OUT); engine.setTransition(_secondaryScreen, null, UiEngineInstance.TRIGGER_POP, transition); MainScreen baseScreen = new MainScreen(); baseScreen.setTitle("Screen Transition Sample"); ButtonField buttonField = new ButtonField("View Transition", ButtonField.CONSUME_CLICK) ; buttonField.setChangeListener(this); baseScreen.add(buttonField); pushScreen(baseScreen); _popRunnable = new Runnable() { public void run() { popScreen(_secondaryScreen); } };

Especificar la orientacin y la direccin de la pantallaEn aplicaciones de pantalla tctil, puede tener en cuenta tanto la orientacin como la direccin de la pantalla. La orientacin se refiere a la relacin de aspecto. La direccin se refiere al rea de dibujo de la pantalla.

OrientacinEl usuario de un dispositivo BlackBerry con pantalla tctil puede cambiar la orientacin de la pantalla girando el dispositivo. Si un usuario sujeta el dispositivo BlackBerry con el logotipo de BlackBerry en la parte superior, la pantalla estar en orientacin vertical. Si el usuario gira el dispositivo 90 grados a la izquierda o la derecha, la pantalla estar en orientacin horizontal. Puede utilizar la clase net.rim.device.api.system.Display para recuperar la orientacin de la pantalla. La clase Display contiene las constantes que se corresponden a las orientaciones que el dispositivo con pantalla tctil puede utilizar para mostrar informacin. Por ejemplo, las orientaciones vertical, horizontal y en cuadrado se corresponden a las constantes Display.ORIENTATION_PORTRAIT, Display.ORIENTATION_LANDSCAPE y Display.ORIENTATION_SQUARE. Para recuperar la orientacin de la pantalla, puede invocar el mtodo Display.getOrientation(). Este mtodo devuelve un entero que se corresponde a una de las orientaciones que el dispositivo BlackBerry puede utilizar. Para detectar los cambios de orientacin, puede omitir Screen.sublayout(). En ese mtodo, invoque super.sublayout() y observe cambios en los valores width y height.

Direccin16

Gua de desarrollo

Especificar la orientacin y la direccin de la pantalla

Un dispositivo BlackBerry con una pantalla tctil puede mostrar informacin en la pantalla en direcciones diferentes. La direccin se refiere a la parte superior del rea de dibujo de la pantalla, que es relativa a la ubicacin del logotipo de BlackBerry. La direccin es norte cuando la parte superior del rea de dibujo es el lado de pantalla ms cercano al logotipo de BlackBerry; la direccin es oeste cuando la parte superior del rea de dibujo est a la izquierda del logotipo de BlackBerry; la direccin es este cuando la parte superior del rea de dibujo est a la derecha del logotipo de BlackBerry. Puede utilizar la clase net.rim.device.api.system.Display, la clase net.rim.device.api.ui.Ui y la clase net.rim.device.api.ui.UiEngineInstance para controlar la direccin que el dispositivo BlackBerry utiliza para mostrar informacin en la pantalla. La clase Display contiene las constantes que se corresponden a las direcciones que el dispositivo puede utilizar para mostrar informacin. Por ejemplo, las direcciones norte, oeste y este se corresponden con las constantes Display.DIRECTION_NORTH, Display.DIRECTION_WEST y Display.DIRECTION_EAST. Puede crear un objeto de la clase net.rim.device.api.ui.Ui e invocar Ui.getUiEngineInstance() para recuperar un objeto de la clase UiEngineInstance. Al invocar UiEngineInstance.setAcceptableDirections() con una de las constantes que se corresponden a las direcciones de la clase Display se establece la direccin que el dispositivo BlackBerry puede utilizar para mostrar informacin. Ejemplo de cdigo: recuperar la orientacin de la pantallaswitch(Display.getOrientation()) { case Display.ORIENTATION_LANDSCAPE: Dialog.alert("Screen orientation case Display.ORIENTATION_PORTRAIT: Dialog.alert("Screen orientation case Display.ORIENTATION_SQUARE: Dialog.alert("Screen orientation default: Dialog.alert("Screen orientation }

is landscape"); break; is portrait"); break; is square"); break; is not known"); break;

Ejemplo de cdigo: forzar la vista vertical en una aplicacin API de BlackBerry// Use code like this before invoking UiApplication.pushScreen() int direction = Display.DIRECTION_NORTH; Ui.getUiEngineInstance().setAcceptableDirections(direction);

Ejemplo de cdigo: forzar la vista horizontal en una aplicacin MIDlet// Use code like this before invoking Display.setCurrent() in the MIDlet constructor DirectionControl dc = (DirectionControl) ((Controllable) Display.getDisplay(this)). getControl("net.rim.device.api.lcdui.control.DirectionControl"); int directions = DirectionControl.DIRECTION_EAST | DirectionControl.DIRECTION_WEST; dc.setAcceptableScreenDirections(directions);

17

Gua de desarrollo

Especificar la orientacin y la direccin de la pantalla

Recuperar la orientacin de la pantalla tctil1. 2. Importe la clase net.rim.device.api.system.Display. Invoque net.rim.device.api.system.Display.getOrientation().int orientation = Display.getOrientation();

Restringir la direccin de la pantalla tctil1. Importe las siguientes clases: net.rim.device.api.ui.Ui net.rim.device.api.ui.UiEngineInstance Invoque net.rim.device.api.ui.Ui.getUiEngineInstance().UiEngineInstance _ue; _ue = Ui.getUiEngineInstance();

2.

3.

Invoque net.rim.device.api.ui.UiEngineInstance.setAcceptableDirections(byte flags) y pase el argumento para la direccin del objeto Screen._ue.setAcceptableDirections(Display.DIRECTION_WEST);

Recibir una notificacin cuando el tamao del rea de dibujo de la pantalla tctil cambie1. Importe las siguientes clases: javax.microedition.lcdui.Canvas net.rim.device.api.ui.component.Dialog Ample javax.microedition.lcdui.Canvas. Omita Canvas.sizeChanged(int, int).protected void sizeChanged(int w, int h) { Dialog.alert("The size of the Canvas has changed"); }

2. 3.

18

Gua de desarrollo

Acelermetro

Acelermetro

4

Los dispositivos BlackBerry con pantalla tctil incluyen un acelermetro, diseado para detectar la orientacin y aceleracin del dispositivo BlackBerry. Cuando el usuario de un dispositivo BlackBerry mueve el dispositivo BlackBerry, el acelermetro puede detectar el movimiento en 3D en los ejes X, Y y Z. El usuario de un dispositivo puede modificar la orientacin del dispositivo, que puede cambiar la direccin de visualizacin de una pantalla entre vertical y horizontal para una aplicacin de dispositivo BlackBerry. Puede utilizar las API del acelermetro, en el paquete net.rim.device.api.system, para reaccionar ante la orientacin y aceleracin del dispositivo BlackBerry. Por ejemplo, puede manipular una aplicacin de juegos para cambiar la direccin y la velocidad de un objeto mvil en la pantalla mientras un usuario mueve y gira el dispositivo BlackBerry a distintas velocidades. Para descargar una aplicacin de ejemplo que demuestre cmo utilizar el acelermetro de pantalla, visite www.blackberry.com/go/accelerometersample. Para obtener ms informacin acerca de la aplicacin de ejemplo, visite www.blackberry.com/go/devguides para leer la Descripcin general de la aplicacin de ejemplo del acelermetro.

Tipos de datos del acelermetroUna aplicacin del dispositivo BlackBerry puede recuperar los datos del acelermetro. Tipo de datos orientacin aceleracin Descripcin La orientacin del dispositivo BlackBerry con respecto al suelo. La aceleracin de la rotacin del dispositivo BlackBerry.

Para obtener ms informacin acerca de los tipos de datos del acelermetro, consulte la referencia de API de BlackBerry Java Development Environment.

Recuperar datos del acelermetroEl acelermetro se ha diseado para seguir la direccin y velocidad del movimiento a lo largo de los ejes X, Y y Z cuando un usuario del dispositivo BlackBerry mueve el dispositivo BlackBerry. El eje X es paralelo a la anchura del dispositivo BlackBerry. El eje Y es paralelo a la longitud del dispositivo BlackBerry. El eje Z es paralelo a la profundidad (de la parte frontal a la trasera) del dispositivo BlackBerry. Para obtener ms informacin acerca de los ejes X, Y y Z del acelermetro, consulte la clase net.rim.device.api.system.AccelerometerSensor en la referencia de API para BlackBerry Java Development Environment. Puede activar una aplicacin del dispositivo BlackBerry para que reaccione a la aceleracin del dispositivo BlackBerry que incluye un acelermetro. Por ejemplo, un usuario de dispositivo BlackBerry podra mover el dispositivo BlackBerry para controlar la direccin y velocidad de un objeto que se mueve a travs de un laberinto en una aplicacin de juego.

19

Gua de desarrollo

Recuperar los datos del acelermetro a intervalos especficos

Puede utilizar las API del acelermetro, en el paquete net.rim.device.api.system, para reaccionar ante la aceleracin del dispositivo BlackBerry. Debe determinar en primer lugar si el dispositivo BlackBerry es compatible con un acelermetro invocando net.rim.device.api.system.AccelerometerSensor.isSupported(). Si el mtodo devuelve el valor true, el dispositivo BlackBerry es compatible con un acelermetro. Puede utilizar la clase AccelerometerData para identificar la direccin en la que el usuario mueve el dispositivo BlackBerry. Si se invoca AccelerometerData.getOrientation(), ste devuelve una de las constantes de la clase AccelerometerSensor que se corresponde con la direccin del dispositivo BlackBerry. Por ejemplo, si AccelerometerData.getOrientation() devuelve un valor igual a AccelerometerSensor.ORIENTATION_LEFT_UP, el lado izquierdo del dispositivo BlackBerry est hacia arriba. Puede utilizar la clase AccelerometerSensor para recuperar los datos de aceleracin del dispositivo BlackBerry. Si se invoca AccelerometerSensor.openRawDataChannel(), este devuelve un objeto de la clase net.rim.device.api.system.AccelerometerSensor.Channel. La clase AccelerometerSensor.Channel le permite abrir una conexin con el acelermetro. Puede recuperar datos del acelermetro invocando AccelerometerSensor.Channel.getLastAccelerationData(). Para mantener una conexin con el acelermetro se utiliza parte de la batera del dispositivo BlackBerry. Cuando la aplicacin del dispositivo BlackBerry ya no necesite recuperar los datos del acelermetro, debe invocar AccelerometerSensor.Channel.close() para cerrar la conexin. Cdigo de ejemplo: recuperacin de los datos del acelermetroshort[] xyz = new short[3]; while( running ) { channel.getLastAccelerationData(xyz); } channel.close();

Recuperar los datos del acelermetro a intervalos especficosSi una aplicacin del dispositivo BlackBerry abre un canal hacia el acelermetro cuando la aplicacin se ejecuta en primer trmino, cuando la aplicacin se ejecuta en segundo plano, el canal se detiene sin consultar al acelermetro. Si una aplicacin del dispositivo BlackBerry invoca AccelerometerSensor.Channel. getLastAccelerationData(short[]) a intervalos cercanos o cuando el dispositivo BlackBerry no est en movimiento, el mtodo podra devolver valores duplicados. 1. Importe las siguientes clases: net.rim.device.api.system.AccelerometerSensor.Channel; net.rim.device.api.system.AccelerometerSensor; Abra un canal hacia el acelermetro. Mientras el canal est abierto, la aplicacin del dispositivo BlackBerry consultar al acelermetro para obtener informacin.Channel rawDataChannel = AccelerometerSensor.openRawDataChannel ( Application.getApplication() );

2.

20

Gua de desarrollo

Consultar al acelermetro cuando la aplicacin se encuentra en primer plano

3. 4. 5. 6. 7.

Cree una matriz para almacenar los datos del acelermetro.short[] xyz = new short[ 3 ];

Cree un subproceso.while( running ) {

Invoque Channel.getLastAccelerationData(short[]) para recuperar los datos del acelermetro.rawDataChannel.getLastAccelerationData( xyz );

Invoque Thread.sleep() para especificar el intervalo entre las consultas al acelermetro, en milisegundos.Thread.sleep( 500 );

Invoque Channel.close() para cerrar el canal al acelermetro.rawDataChannel.close();

Consultar al acelermetro cuando la aplicacin se encuentra en primer plano1. Importe las siguientes clases: net.rim.device.api.system.AccelerometerChannelConfig net.rim.device.api.system.AccelerometerSensor.Channel Abra un canal para recuperar los datos de aceleracin del acelermetro.Channel channel = AccelerometerSensor.openRawAccelerationChannel ( Application.getApplication());

2.

3.

Invoque Thread.sleep() para especificar el intervalo entre las consultas al acelermetro, en milisegundos.short[] xyz = new short[ 3 ]; while( running ) { channel.getLastAccelerationData( xyz ); Thread.sleep( 500 ); }

4.

Invoque Channel.close() para cerrar el canal al acelermetro.channel.close();

Consultar al acelermetro cuando la aplicacin se encuentra en segundo plano1. Importe las siguientes clases: net.rim.device.api.system.AccelerometerChannelConfig; net.rim.device.api.system.AccelerometerSensor.Channel;

21

Gua de desarrollo

Almacenar las lecturas del acelermetro en un bfer

2.

Cree una configuracin para un canal hacia el acelermetro.AccelerometerChannelConfig channelConfig = new AccelerometerChannelConfig ( AccelerometerChannelConfig.TYPE_RAW );

3.

Invoque AccelerometerChannelConfig.setBackgroundMode(Boolean) para especificar compatibilidad con una aplicacin que se encuentra en segundo plano.channelConfig.setBackgroundMode( true );

4.

Invoque AccelerometerSensor.openChannel() para abrir un canal en segundo plano hacia el acelermetro.Channel channel = AccelerometerSensor.openChannel( Application.getApplication(), channelConfig );

5.

Invoque Thread.sleep() para especificar el intervalo entre las consultas al acelermetro, en milisegundos.short[] xyz = new short[ 3 ]; while( running ) { channel.getLastAccelerationData( xyz ); Thread.sleep( 500 ); }

6.

Invoque Channel.close() para cerrar el canal al acelermetro.channel.close();

Almacenar las lecturas del acelermetro en un bfer1. Importe las siguientes clases: net.rim.device.api.system.AccelerometerChannelConfig; net.rim.device.api.system.AccelerometerSensor.Channel; Cree una configuracin para un canal hacia el acelermetro.AccelerometerChannelConfig channelConfig = new AccelerometerChannelConfig ( AccelerometerChannelConfig.TYPE_RAW );

2.

3.

Invoque AccelerometerChannelConfig.setSamplesCount() para especificar el nmero de lecturas de aceleracin a almacenar en el bfer. Cada elemento del bfer contiene las lecturas de aceleracin para la los ejes X, Y y Z y datos acerca de cundo tuvo lugar la lectura.channelConfig.setSamplesCount( 500 );

4.

Invoque AccelerometerSensor.openChannel() para abrir un canal hacia el acelermetro.Channel bufferedChannel = AccelerometerSensor.openChannel ( Application.getApplication(), channelConfig );

22

Gua de desarrollo

Recuperar las lecturas del acelermetro desde el bfer

Recuperar las lecturas del acelermetro desde el bfer1. Importe las siguientes clases: net.rim.device.api.system.AccelerometerData; net.rim.device.api.system.AccelerometerSensor.Channel; Deber consultar al bfer los datos del acelermetro.AccelerometerData accData = bufferedChannel.getAccelerometerData();

2. 3.

Invoque AccelerometerData.getNewBatchLength() para obtener el nmero de lecturas recuperadas desde la ltima consulta.int newBatchSize = accData.getNewBatchLength();

4.

Invoque AccelerometerData.getXAccHistory(), AccelerometerData.getYAccHistory() y AccelerometerData.getZAccHistory() para recuperar datos del acelermetro del bfer para cada eje.short[] xAccel = accData.getXAccHistory(); short[] yAccel = accData.getYAccHistory(); short[] zAccel = accData.getZAccHistory();

Obtener la hora a la que se efectu una lectura del acelermetro1. 2. Importe la clase net.rim.device.api.system.AccelerometerData. Deber consultar al bfer los datos del acelermetro.AccelerometerData accData; accData = bufferedChannel.getAccelerometerData();

3.

Invoque AccelerometerData.getSampleTsHistory().long[] queryTimestamps = accData.getSampleTsHistory();

23

Gua de desarrollo

Eventos

EventosResponder a eventos de navegacin

5

Puede utilizar los mtodos de navegacin Screen para crear una aplicacin de dispositivo BlackBerry. Si la aplicacin existente del dispositivo BlackBerry implementa la interfaz TrackwheelListener, actualice la aplicacin del dispositivo BlackBerry para utilizar los mtodos de navegacin Screen. 1. 2. Importe la clase net.rim.device.api.ui.Screen. Gestione los eventos de navegacin ampliando la clase net.rim.device.api.ui.Screen (o una de sus subclases) y omitiendo los siguientes mtodos de navegacin:navigationClick(int status, int time) navigationUnclick(int status, int time) navigationMovement(int dx, int dy, int status, int time)

Determinar el tipo de mtodo de entrada1. Importe una o ms de las siguientes clases: net.rim.device.api.ui.Screen net.rim.device.api.ui.Field Importe la interfaz net.rim.device.api.system.KeypadListener. Implemente la interfaz net.rim.device.api.system.KeypadListener. Ample la clase Screen, la clase Field o las dos. En la implementacin de uno de los mtodos navigationClick, navigationUnclick o navigationMovement, realice un orden de bits Y una operacin en el parmetro status para generar ms informacin sobre el evento. Implemente el mtodo navigationClick(int status, int time) para determinar si la rueda de desplazamiento o un dispositivo de entrada de navegacin de cuatro direcciones (por ejemplo, una bola de desplazamiento) desencadena un evento.public boolean navigationClick(int status, int time) { if ((status & KeypadListener.STATUS_TRACKWHEEL) == KeypadListener.STATUS_TRACKWHEEL) { //Input came from the trackwheel } else if ((status & KeypadListener.STATUS_FOUR_WAY) == KeypadListener.STATUS_FOUR_WAY) { //Input came from a four way navigation input device } return super.navigationClick(status, time); }

2. 3. 4. 5.

Para obtener ms informacin sobre los modificadores de estado para la clase net.rim.device.api.system.KeypadListener, consulte la referencia de API para BlackBerry Java Development Environment.

24

Gua de desarrollo

Modelos de interaccin con la pantalla tctil

Modelos de interaccin con la pantalla tctilBlackBerry con una pantalla tctil y un panel tctil utilizan un modelo de interaccin de clics que no ejerce presin, con este modelo el usuario del dispositivo BlackBerry toca la pantalla o utiliza el panel tctil para realizar una accin. Este modelo es diferente del empleado en los modelos de BlackBerry con una pantalla tctil SurePress, en la que el usuario hace clic (o pulsa) en la pantalla para realizar una accin. En ambos tipos de dispositivos, cuando el usuario toca la pantalla, ocurre un evento TouchEvent.DOWN. En dispositivos con una pantalla tctil SurePress, cuando el usuario ejerce presin y hace clic en la pantalla, ocurre un evento TouchEvent.CLICK. Si se disminuye la presin, ocurre un evento TouchEvent.UNCLICK. Normalmente, acciones como, por ejemplo, la invocacin de una accin basada en un botn tienen lugar en el evento TouchEvent.UNCLICK. Cuando el usuario deja de ejercer presin en la pantalla, ocurre un evento TouchEvent.UP. En dispositivos con una pantalla tctil que sea compatible con este tipo de clic que no ejerce presin, no tiene lugar la accin fsica de hacer clic y deseleccionar. En su lugar, se espera que las acciones tengan lugar cuando el usuario toque la pantalla. Un toque es un evento TouchEvent.DOWN seguido rpidamente de un evento TouchEvent.UP. Esta combinacin de eventos de toques se denomina gesto, a continuacin, tiene lugar un TouchGesture. En el caso de un toque, tiene lugar un evento TouchGesture.TAP (junto con los eventos TouchEvent.DOWN y TouchEvent.UP ). Para ofrecer mayor compatibilidad entre los dos tipos de modelos de interaccin de pantalla tctil, en dispositivos que sean compatibles con los clics sin presin, el evento TouchEvent.CLICK y el evento TouchEvent.UNCLICK tendrn lugar tras el evento TouchGesture.TAP, as que puede invocar una accin en el evento TouchEvent.UNCLICK en todos los dispositivos de pantalla tctil, tanto si el dispositivo tiene una pantalla tctil SurePress como si no. Dispositivos que son compatibles con los clics sin presinTouchEvent.DOWN TouchGesture.HOVER

Accin del usuario Tocar la pantalla. Tocar y mantener el dedo presionando un elemento. Hacer clic en la pantalla. Hacer clic y mantener pulsada la pantalla. Soltar la pantalla. Despegar el dedo de la pantalla. Tocar la pantalla.

Dispositivos con pantalla tctil SurePressTouchEvent.DOWN TouchGesture.HOVER

TouchEvent.UP TouchEvent.DOWN TouchGesture.TAP TouchEvent.CLICK TouchEvent.UNCLICK

TouchEvent.CLICK TouchEvent.CLICK_REPEAT TouchEvent.UNCLICK TouchEvent.UP TouchEvent.DOWN TouchGesture.TAP TouchEvent.UP

25

Gua de desarrollo

Responder a los eventos de pantalla tctil

Accin del usuario

Dispositivos que son compatibles con los clics sin presinTouchEvent.UP

Dispositivos con pantalla tctil SurePress

Puede determinar si un dispositivo con una pantalla tctil es compatible con los clics que no ejercen presin invocando DeviceCapability.isTouchClickSupported(). Si el dispositivo es compatible con los clics que no ejercen presin, el mtodo devuelve false. Si el dispositivo dispone de una pantalla tctil SurePress, el mtodo devuelve true.

Responder a los eventos de pantalla tctilLos usuarios del dispositivo BlackBerry pueden llevar a cabo en un dispositivo con pantalla tctil las mismas acciones que en un dispositivo BlackBerry con bola de desplazamiento. Por ejemplo, los usuarios del dispositivo BlackBerry pueden utilizar la pantalla tctil para abrir un men, desplazarse por una lista de opciones y seleccionar una opcin. Si utiliza una versin de BlackBerry Java Development Environment anterior a la versin 4.7 para crear una aplicacin del dispositivo BlackBerry, puede modificar el archivo .jad de la aplicacin para activar la aplicacin para que responda cuando un usuario del dispositivo BlackBerry toque la pantalla tctil. En el archivo .jad, debe configurar la opcin RIM-TouchCompatibilityMode en false. Si utiliza BlackBerry JDE versin 4.7 o posterior para crear una aplicacin del dispositivoBlackBerry, puede activar la aplicacin para que identifique la accin que lleva a cabo el usuario del dispositivoBlackBerry n la pantalla tctil ampliando la clase net.rim.device.api.ui.Screen y la clase net.rim.device.api.ui.Field o una de las subclases de la clase Field y omitiendo el mtodo touchEvent(). En el mtodo touchEvent(), compare el valor que TouchEvent.getEvent() devuelve a las constantes desde la clase net.rim.device.api.ui.TouchEvent y la clase net.rim.device.api.ui.TouchGesture. La clase TouchEvent contiene las constantes que representan las distintas acciones que un usuario puede realizar en la pantalla tctil. Por ejemplo, las acciones para hacer clic, tocar y mover se corresponden con las constantes TouchEvent.CLICK, TouchEvent.DOWN y TouchEvent.MOVE. La clase TouchGesture contiene las constantes que representan los distintos gestos que un usuario puede realizar en la pantalla tctil. Por ejemplo, los gestos para puntear y tocar la pantalla se corresponden con las constantes TouchGesture.TAP y TouchGesture.SWIPE. Cdigo de ejemplo: identificacin de la accin que realiza un usuario en la pantalla tctil El siguiente cdigo de ejemplo utiliza una declaracin switch para identificar la accin.protected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.CLICK: Dialog.alert("A click action occurred"); return true; case TouchEvent.DOWN: Dialog.alert("A down action occurred"); return true; case TouchEvent.MOVE: 26

Gua de desarrollo

Responder a los eventos de pantalla tctil

} return false; }

Dialog.alert("A move action occurred"); return true;

Responder a eventos de sistema mientras el usuario toca la pantalla1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.Field net.rim.device.api.ui.Manager net.rim.device.api.ui.Screen net.rim.device.api.ui.component.Dialog Cree una clase que ample la clase Manager, la clase Screen, la clase Field, o una de las subclases Field.public class newButtonField extends ButtonField {

2. 3. 4.

().

En su implementacin del mtodo touchEvent(TouchEvent message), invoque TouchEvent.getEvent

Compruebe si el valor que devuelve TouchEvent.getEvent() es igual a TouchEvent.CANCEL.protected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.CANCEL: Dialog.alert("System event occurred while processing touch events"); return true; } return false; }

Responder a un usuario deslizando rpidamente un dedo hacia arriba en la pantalla1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.TouchGesture net.rim.device.api.ui.Field net.rim.device.api.ui.Manager net.rim.device.api.ui.Screen net.rim.device.api.ui.component.Dialog Cree una clase que ample la clase Manager, la clase Screen, la clase Field, o una de las subclases Field.public class newButtonField extends ButtonField {

2. 3.

().

En su implementacin del mtodo touchEvent(TouchEvent message), invoque TouchEvent.getEvent

27

Gua de desarrollo

Responder a los eventos de pantalla tctil

4.

TouchGesture.SWIPE_NORTH.

Compruebe si el valor que devuelve TouchGesture.getSwipeDirection() es igual aprotected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.GESTURE: TouchGesture gesture = message.getGesture(); switch(gesture.getEvent()) { case TouchGesture.SWIPE: if(gesture.getSwipeDirection() == TouchGesture.SWIPE_NORTH) { Dialog.alert("Upward swipe occurred"); return true; } } return false; } }

Responder a un usuario deslizando rpidamente un dedo hacia abajo en la pantalla1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.TouchGesture net.rim.device.api.ui.Field net.rim.device.api.ui.Manager net.rim.device.api.ui.Screen net.rim.device.api.ui.component.Dialog Cree una clase que ample la clase Manager, la clase Screen, la clase Field, o una de las subclases Field.public class newButtonField extends ButtonField {

2. 3. 4.

().

En su implementacin del mtodo touchEvent(TouchEvent message), invoque TouchEvent.getEvent

TouchGesture.SWIPE_SOUTH.

Compruebe si el valor que devuelve TouchGesture.getSwipeDirection() es igual aprotected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.GESTURE: TouchGesture gesture = message.getGesture(); switch(gesture.getEvent()) { case TouchGesture.SWIPE: if(gesture.getSwipeDirection() == TouchGesture.SWIPE_SOUTH) { Dialog.alert("Downward swipe occurred"); return true; } }

28

Gua de desarrollo

Responder a los eventos de pantalla tctil

}

}

return false;

Responder a un usuario deslizando un dedo hacia la izquierda rpidamente en la pantalla1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.TouchGesture net.rim.device.api.ui.Field net.rim.device.api.ui.Manager net.rim.device.api.ui.Screen net.rim.device.api.ui.component.Dialog Cree una clase que ample la clase Manager, la clase Screen, la clase Field, o una de las subclases Field.public class newButtonField extends ButtonField {

2. 3. 4.

().

En su implementacin del mtodo touchEvent(TouchEvent message), invoque TouchEvent.getEvent

TouchGesture.SWIPE_EAST.

Compruebe si el valor que devuelve TouchGesture.getSwipeDirection() es igual aprotected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.GESTURE: TouchGesture gesture = message.getGesture(); switch(gesture.getEvent()) { case TouchGesture.SWIPE: if(gesture.getSwipeDirection() == TouchGesture.SWIPE_EAST) { Dialog.alert("Eastward swipe occurred"); return true; } } return false; } }

Responder a un usuario deslizando un dedo hacia la derecha rpidamente en la pantalla1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.TouchGesture net.rim.device.api.ui.Field net.rim.device.api.ui.Manager

29

Gua de desarrollo

Responder a los eventos de pantalla tctil

net.rim.device.api.ui.Screen net.rim.device.api.ui.component.Dialog 2. 3. 4. Cree una clase que ample la clase Manager, la clase Screen, la clase Field, o una de las subclases Field.public class newButtonField extends ButtonField { ().

En su implementacin del mtodo touchEvent(TouchEvent message), invoque TouchEvent.getEvent

TouchGesture.SWIPE_WEST.

Compruebe si el valor que devuelve TouchGesture.getSwipeDirection() es igual aprotected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.GESTURE: TouchGesture gesture = message.getGesture(); switch(gesture.getEvent()) { case TouchGesture.SWIPE: if(gesture.getSwipeDirection() == TouchGesture.SWIPE_WEST) { Dialog.alert("Westward swipe occurred"); return true; } } return false; } }

Responder a un usuario haciendo clic en la pantalla1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.Field net.rim.device.api.ui.Manager net.rim.device.api.ui.Screen net.rim.device.api.ui.component.Dialog Cree una clase que ample la clase Manager, la clase Screen, la clase Field, o una de las subclases Field.public class newButtonField extends ButtonField {

2. 3. 4.

().

En su implementacin del mtodo touchEvent(TouchEvent message), invoque TouchEvent.getEvent

Compruebe si el valor que devuelve TouchEvent.getEvent() es igual a TouchEvent.CLICK.protected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.CLICK: Dialog.alert("CLICK occurred"); return true;

30

Gua de desarrollo

Responder a los eventos de pantalla tctil

}

} return false;

Responder a un usuario tocando la pantalla dos veces rpidamente1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.TouchGesture net.rim.device.api.ui.Field net.rim.device.api.ui.Manager net.rim.device.api.ui.Screen net.rim.device.api.ui.component.Dialog Cree una clase que ample la clase Manager, la clase Screen, la clase Field, o una de las subclases Field.public class newButtonField extends ButtonField {

2. 3.

En su implementacin del mtodotouchEvent(TouchEvent message) compruebe que existe el evento TouchGesture.TAP y que TouchGesture.getTapCount devuelve 2.protected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.GESTURE: TouchGesture gesture = message.getGesture(); switch(gesture.getEvent()) { case TouchGesture.TAP: if(gesture.getTapCount() == 2) { Dialog.alert("Double tap occurred"); return true; } } } return false; }

Responder a un usuario tocando y arrastrando un elemento en la pantalla1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.Field net.rim.device.api.ui.Manager net.rim.device.api.ui.Screen net.rim.device.api.ui.component.Dialog Cree una clase que ample la clase Manager, la clase Screen, la clase Field, o una de las subclases Field.public class newButtonField extends ButtonField {

2.

31

Gua de desarrollo

Responder a los eventos de pantalla tctil

3. 4.

En su implementacin del mtodo touchEvent(TouchEvent message), invoque TouchEvent.getEvent (). Compruebe si el valor que devuelve TouchEvent.getEvent() es igual a TouchEvent.MOVE.protected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.MOVE: Dialog.alert("Move event occurred"); return true; } return false; }

Responder a un usuario tocando la pantalla ligeramente1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.TouchGesture net.rim.device.api.ui.Field net.rim.device.api.ui.Manager net.rim.device.api.ui.Screen net.rim.device.api.ui.component.Dialog Cree una clase que ample la clase Manager, la clase Screen, la clase Field, o una de las subclases Field.public class newButtonField extends ButtonField {

2. 3. 4.

().

En su implementacin del mtodo touchEvent(TouchEvent message), invoque TouchEvent.getEvent

Compruebe si el valor que devuelve TouchEvent.getEvent() es igual a TouchEvent.DOWN.protected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.DOWN: Dialog.alert("Touch occurred"); return true; } return false; }

Responder a una accin de desplazamiento1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.TouchGesture net.rim.device.api.ui.Field net.rim.device.api.ui.Manager

32

Gua de desarrollo

net.rim.device.api.ui.Screen 2. 3. Cree una clase que ample la clase Manager.public class newManager extends Manager {

En su implementacin del mtodo touchEvent(TouchEvent message) , compruebe si el valor que devuelve TouchEvent.getEvent() es igual que TouchEvent.MOVE.protected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.MOVE: return true; } return false; }

Responder a un usuario tocando la pantalla en dos ubicaciones al mismo tiempo1. Importe las siguientes clases: net.rim.device.api.ui.TouchEvent net.rim.device.api.ui.Field net.rim.device.api.ui.Manager net.rim.device.api.ui.Screen net.rim.device.api.ui.component.Dialog Cree una clase que ample la clase Manager, la clase Screen, la clase Field, o una de las subclases Field.public class newButtonField extends ButtonField {

2. 3.

En su implementacin del mtodo touchEvent(TouchEvent message) , compruebe si las siguientes invocaciones del mtodo devuelven valores mayores a cero: TouchEvent.getX(1), TouchEvent.getY (1), TouchEvent.getX(2), TouchEvent.getY(2).protected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.MOVE: if(message.getX(1) > 0 && message.getY(1) > 0) { Dialog.alert("First finger touched/moved"); } if(message.getX(2) > 0 && message.getY(2) > 0) { Dialog.alert("Second finger touched/moved"); } return true; } return false; }

33

Gua de desarrollo

Gestos de pellizco

Gestos de pellizcoLos dispositivos BlackBerry con pantalla tctil son compatibles con los gestos de pellizco. Los gestos de pellizco normalmente amplan y alejan un objeto en la pantalla. Un pellizco comienza cuando se detectan dos puntos de contacto en la pantalla tctil. El punto focal del pellizco se define como el punto intermedio entre dos puntos de contacto iniciales. Al detectar dos puntos de contacto, tiene lugar un evento TouchGesture.PINCH_BEGIN. Los puntos de la coordenada del punto focal del gesto de pellizco se almacenan como TouchEvent.getX(1) y TouchEvent.getY(1). Puede acceder al valor inicial del zoom invocando TouchGesture.getPinchMagnitude(). Cuando el usuario mueve uno o ambos puntos de contacto, tiene lugar una serie de eventos TouchGesture.PINCH_UPDATE. Puede acceder a los valores de zoom durante el gesto de pellizco invocando TouchGesture.getPinchMagnitude(). Cuando el usuario completa el gesto, tiene lugar un evento TouchGesture.PINCH_END. Puede acceder al valor final del zoom invocando TouchGesture.getPinchMagnitude().

Ejemplo de cdigo: recuperar informacin acerca de un gesto de pellizco Este ejemplo demuestra cmo administrar un gesto de pellizco en el mtodo touchEvent() de la pantalla.protected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.GESTURE: TouchGesture gesture = message.getGesture(); switch(gesture.getEvent()) { case TouchGesture.PINCH_END: Dialog.alert("Focal point: " + message.getX(1) + ", " + message.getY(1) + "\nFinal zoom value: " + gesture.getPinchMagnitude()); return true; } } return false; }

Activar los gestos para pellizcarDe forma predeterminada, los gestos para pellizcar no estn activados en la pantalla en una aplicacin del dispositivo BlackBerry. Debe establecer la propiedad de pantalla para activar la generacin de los gestos para pellizcar en una pantalla. 1. Importe las clases y las interfaces necesarias.

34

Gua de desarrollo

Desplazamientos con paneles tctiles

import net.rim.device.api.ui.*; import net.rim.device.api.ui.container.*; import net.rim.device.api.ui.input.*;

2. 3. 4.

En su objeto Screen, cree un objeto InputSettings para rellenar con propiedades de pantalla tctil.InputSettings ts = TouchscreenSettings.createEmptySet();

Configure la propiedad TouchscreenSettings.DETECT_PINCH en 1.ts.set(TouchscreenSettings.DETECT_PINCH, 1);

Invoque Screen.addInputSettings() para agregar la configuracin de entrada a la pantalla.addInputSettings(ts);

Puede cambiar el valor de la propiedad TouchscreenSettings.DETECT_PINCH en cualquier momento, no slo cuando cree el objeto Screen. Cdigo de ejemplo Este ejemplo demuestra cmo activar los gestos para pellizcar por el panel tctil en el constructor de una pantalla.public MyScreen() { setTitle("Sample Screen"); InputSettings ts = TouchscreenSettings.createEmptySet(); ts.set(TouchscreenSettings.DETECT_PINCH, 1); addInputSettings(ts); ... }

Desplazamientos con paneles tctilesAl igual que los dispositivos BlackBerry con una pantalla tctil, los dispositivos con un panel tctil son compatibles con los desplazamientos que los usuarios del dispositivo BlackBerry realizan en el panel tctil. Se generar un objeto TouchEvent con el tipo de evento TouchGesture.NAVIGATION_SWIPE cuando el usuario se desplace a travs del panel tctil. Puede recuperar informacin acerca del desplazamiento por el panel tctil mediante los siguientes mtodos: TouchGesture.getSwipeAngle() TouchGesture.getSwipeDirection() TouchGesture.getSwipeContentAngle() TouchGesture.getSwipeContentDirection() TouchGesture.getSwipeMagnitude()

Ejemplo de cdigo: recuperar informacin acerca de un desplazamiento por el panel tctil

35

Gua de desarrollo

Desplazamientos con paneles tctiles

Este ejemplo demuestra cmo administrar un desplazamiento por el panel tctil en el mtodo touchEvent() de la pantalla.protected boolean touchEvent(TouchEvent message) { switch(message.getEvent()) { case TouchEvent.GESTURE: TouchGesture gesture = message.getGesture(); switch(gesture.getEvent()) { case TouchGesture.NAVIGATION_SWIPE: Dialog.alert("Swipe direction: " + gesture.getSwipeDirection() + ", " + "\nMagnitude: " + gesture.getSwipeMagnitude()); return true; } } return false; }

Activar los deslizamientos que los usuarios realizan en el panel tctilDe forma predeterminada, los deslizamientos que los usuarios del dispositivo BlackBerry realizan en el panel tctil no estn activados en una pantalla. Debe configurar la propiedad de navegacin para activar la generacin de deslizamientos por el panel tctil en una pantalla. 1. Importe las clases y las interfaces necesarias.import net.rim.device.api.ui.*; import net.rim.device.api.ui.container.*; import net.rim.device.api.ui.input.*;

2. 3. 4.

En su objeto Screen, cree un objeto InputSettings para rellenar con propiedades de navegacin.InputSettings nd = NavigationDeviceSettings.createEmptySet();

Configure la propiedad NavigationDeviceSettings.DETECT_SWIPE en 1.nd.set(NavigationDeviceSettings.DETECT_SWIPE, 1);

Invoque Screen.addInputSettings() para agregar la configuracin de entrada a la pantalla.addInputSettings(nd);

Puede cambiar el valor de la propiedad NavigationDeviceSettings.DETECT_SWIPE en cualquier momento, no slo cuando cree el objeto Screen. Cdigo de ejemplo Este ejemplo muestra cmo activar los deslizamientos por el panel tctil en el constructor de una pantalla.

36

Gua de desarrollo

Inyeccin de eventos

public MyScreen() { setTitle("Sample Screen"); InputSettings nd = NavigationDeviceSettings.createEmptySet(); nd.set(NavigationDeviceSettings.DETECT_SWIPE, 1); addInputSettings(nd); ... }

Inyeccin de eventosPuede generar eventos de interfaz de usuario mediante programacin utilizando la clase EventInjector y sus clases internas. En dispositivos BlackBerry que ejecutan BlackBerry Device Software versin 5.0 o posterior y que tienen pantallas tctiles, podr inyectar eventos tctiles, por ejemplo, deslizamientos o toques. Puede utilizar una de las clases internas EventInjector para modelar un evento y puede utilizar el mtodo invokeEvent() para inyectar el evento. El evento se enva a la aplicacin que est seleccionada actualmente y preparada para aceptar la entrada. Puede utilizar la inyeccin de eventos para automatizar las pruebas. Tambin puede utilizar la inyeccin de eventos para permitir a los perifricos interactuar con el dispositivo BlackBerry. Tambin la puede utilizar en aplicaciones accesibles como en convertidores de voz a texto. Si desea consultar una aplicacin de ejemplo que muestre la inyeccin de eventos, visite www.blackberry.com/go/toucheventinjectorsampleapp para descargar la aplicacin de ejemplo Inyector de eventos tctiles. Para obtener ms informacin acerca de la aplicacin de ejemplo, visite www.blackberry.com/go/docs/developers para leer la Descripcin general de la aplicacin de ejemplo Inyector de eventos tctiles.

37

Gua de desarrollo

API de marco de comandos

API de marco de comandosLa API de marco de comandos contiene controladores de comandos, metadatos de comando y comandos. Componente Controlador de comandos

6

Puede utilizar la API de marco de comandos en el paquete net.rim.device.api.command para definir las funcionalidades que puede utilizar en distintas ubicaciones de su aplicacin o en otras aplicaciones del dispositivo BlackBerry.

Metadatos de comando

Descripcin Utilice la clase CommandHandler para definir la funcionalidad que desea proporcionar en su aplicacin o en otras aplicaciones del dispositivo. Puede utilizar una clase que ample la clase CommandHandler abstracta y definir la funcionalidad en el mtodo execute() de su clase. Esta funcionalidad recibe el nombre de comando. Utilice la clase CommandMetadata para definir metadatos que describan un comando. Los metadatos de cada comando son encapsulados en un objeto CommandMetadata. La nica parte de metadatos necesaria para un comando es el identificador del comando, que se suministra cuando se construye el objeto CommandMetadata y se almacena en el campo del objeto COMMAND_ID.CommandMetadata le ofrece otros campos que po