API de UI

A API de UI ajuda a criar interfaces do usuário para telas do BlackBerry®.

Os aplicativos com uma UI implementam a net.rim.device.api.ui.UiApplication, que é uma subclasse de net.rim.device.api.system.Application. Um objeto UIApplication mantém uma pilha de objetos Tela. Conforme envia as telas para a pilha, posiciona-as em cima de outras telas que já estejam na pilha. Quando o aplicativo coloca uma tela fora da pilha, ele reposiciona as telas subjacentes conforme necessário. Apenas a tela no topo da pilha recebe eventos de entrada.

Os três principais objetos de UI são Campo, Gerenciador e Tela.

Campos

Um Campo representa uma região retangular contida por um gerenciador. Cada controle, como um botão, corresponde a uma instância de um campo. Não é possível instanciar Campo diretamente, mas é possível usar campos pré-definidos para criar campos personalizados. Cada campo recebe o controle e gerencia as entradas do usuário. A seguir estão alguns dos campos pré-definidos mais utilizados:

Você pode criar campos personalizado estendendo a classe Field.

Gerenciadores

Um Gerenciador, também denominado gerenciador de layout, controla o layout e a rolagem dos campos. Um objeto Gerenciador contém campos. Há várias subclasses de Gerenciador que controlam tipos específicos de layout de campo.

Vários gerenciadores úteis são definidos no pacote net.rim.device.api.ui.container. Os seguintes gerenciadores são os mais utilizados:

Você declara um gerenciador de layout no nível superior de sua tela e, em seguida, adiciona campos a ele. Como os gerenciadores de layout são subclasses de Campo, eles podem ser integrados a outros gerenciadores de layout. Você também pode definir o seu próprio gerenciador de layout.

Telas

Uma Tela é o contêiner de nível superior para os elementos de UI que representam o que você deseja exibir. As telas podem conter campos (como campos de texto), gerenciadores de layout, botões de opção e listas suspensas.

A API de UI tem dois tipos principais de objeto Tela:

Você pode exibir informações suplementares ao seu aplicativo em uma tela pop-up sem interromper o fluxo do aplicativo. Como resultado, você não tem que deixar a tela principal e retornar a ela posteriormente. Além disso, você pode priorizar quais objetos PopupScreen são enviados à parte superior da pilha de exibição chamando pushGlobalScreen (Screen, int, int).

Menus

Os smartphones BlackBerry organizam comandos em um menu sensível ao contexto que pode ser acessado pressionando a tecla Menu. Os itens de menu são instâncias de MenuItem. Você pode personalizar o menu que é aberto para seu aplicativo. Você pode:

  • Adicionar ou remover itens de menu dependendo da tela ou do estado do aplicativo quando o menu é aberto
  • Especificar a ordem dos itens de menu
  • Especificar a ordem dos itens de menu e o item de menu que é selecionado por padrão

Ouvintes

A API de UI contém um modelo genérico de ouvinte de evento que permite implementar ouvintes para muitos tipos de eventos, como quando um campo é alterado ou quando o usuário pressiona uma tecla, clica no trackpad ou no trackball ou toca a tela sensível ao toque. Você pode definir um ouvinte para um objeto Campo invocando setChangeListener() da classe Field.

Padrão de projeto Modelo-Visualização-Controle

Alguns componentes padrão na API de UI, incluindo indicadores de atividade e progresso no pacote net.rim.device.api.ui.component.progressindicator e listas e tabelas no pacote net.rim.device.api.ui.component.table, usam o padrão de projeto Modelo-Visualização-Controlador (MVC).

Antes de usar estes componentes, você deve estar familiarizado com o padrão de projeto MVC. Há muitas impressões e recursos on-line nos quais você pode aprender sobre MVC.

Telas modais

Os objetos de tela são enviados à pilha de exibição pelos métodos pushScreen() e pushModalScreen() da classe UiApplication. Como o pushModalScreen() é bloqueado até a tela ser movida rapidamente na pilha de exibição (onde pushScreen() retorna imediatamente), a ordem de operações é crucial quando você usa telas modais. Não chame pushModalScreen() antes de iniciar o thread de dispatcher de evento; fazer isso lança um RuntimeException. Outros métodos, como Dialog.inform() e Dialog.alert(), também usam pushModalScreen().

Gráficos

Há várias opções para criar gráficos em um smartphone BlackBerry:

  • Você pode adicionar componentes de UI predefinidos, como texto, controles de entrada e imagens aos objetos Screen.
  • Você pode fazer desenhos simples personalizados em uma tela substituindo o método paint() da classe que representa a tela e usando os métodos fornecidos pelo objeto Graphics para desenhar na tela.
  • Você pode fazer gráficos 2D com as APIs de SVG: org.w3c.dom, org.w3c.dom.events e org.w3c.dom.svg.
  • Você pode fazer imagens 2D mais sofisticadas usando a API de Utilitário gráfico: API OpenGL ES ou API OpenVG.
  • Você pode criar imagens 3D usando a API OpenGL ES.

Estas informações foram úteis? Gostaríamos de receber seus comentários.