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:
- ButtonField fornece um botão simples
- LabelField fornece um rótulo de texto
- TextField fornece um rótulo de texto
- DateField permite armazenar uma data e exibi-la em diferentes formatos em um campo (como 17/11/2011)
- MapField permite representar um mapa em um campo
- BrowserField permite exibir conteúdo da Web em um campo
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:
- VerticalFieldManager, que organiza campos em uma única coluna vertical
- HorizontalFieldManager, que organiza campos em uma única linha horizontal
- FlowFieldManager, que organiza campos primeiro horizontalmente e, em seguida, verticalmente
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:
- FullScreen, que possui as subclasses MainScreen e PhoneScreen.
- PopupScreen, que possui as subclasses Dialog, Status, LocationPicker e AbstractLocationPicker.
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:
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.