Pular para o conteúdo principal

1.2 Pacotes gráficos e UI

API LCDUI

 
 

Há dois níveis de Interface de Usuário (UI) no pacote LCDUI da configuração MIDP: Alto e baixo nível.

 
 

APIs alto nível contém o conjunto de básico de componentes para a construção de um aplicativo J2me. Sua utilização aumenta a portabilidade. Na verdade é esperado que esta implementação fará a adaptação necessária do hardware e estilo nativo de UI deste.

 
 

APIs baixo nível são principalmente usados em jogos e aplicativos que requerem trabalhar com gráficos interativos e componentes customizados. A intenção do Canvas é usar componentes customizados, por exemplo, Canvas pode ser utilizado numa aplicação de relógio. Aplicativos que fazem uso desta vertente possuem a portabilidade prejudicada, pois uma API de baixo nível acessa detalhes que são específicos de um determinado aparelho.

Para detalhes sobre o funcionamento e estrutura do pacote LCDUI, veja a especificação MIDP 2.0 em http://www.jcp.org/en/jsr/detail?id=118 .

O que é API?

Veja aqui: http://pt.wikipedia.org/wiki/API

 
 

API GAME

 
 

O pacote da API Game, que é uma extensão do pacote LCDUI, que por sua vez deriva de MIDP 2.0, provê uma série de classes que nos permitem criar conteúdo rico para jogos em dispositivos móveis.

 
 

Como os aparelhos portáteis possuem baixo poder de processamento, a API tenta aumentar a performance reduzindo o montante de tarefas que serão executados em java, acabando por reduzir o tamanho do aplicativo. A API é estruturada de forma a nos permitir total liberdade de implementação, o que significa maior uso de código nativo, aceleração de hardware, formatos de imagens específicos de algum aparelho, se necessário.

 
 

A API usa classes padrão de baixo nível da MIDP ( Graphics, Image, etc ), então classes alto nível da API Game podem ser utilizadas em conjunto com gráficos primitivos. Ex, podemos renderizar na tela um poderoso plano de fundo usando a API Game e renderizar em cima desta usando gráficos primitivos, como drawLine, etc.

 
 

API M2G

 
 

Esta API manipula gráficos de vetores escaláveis 2D, incluindo aí imagens externas e animações SVG. Indicado o uso para aparelhos de maio poder de processamento, memória e tela.

 
 

API M3G

 
 

A função dessa API é prover eficiente e flexível manipulação gráfica 3D, em tempo real. Esta API é indicada para aparelhos que não suportam gráficos 3D por hardware. A API tem sido implementada para tipo de hardware comum, entretanto é bem utilizada em aparelhos com alta característica de cores e hardware específico para gráficos 3D.

A API foi cuidadosamente integrada com a LCDUI, o que quer dizer que gráficos 3D ou 2D podem ser renderizados utilizando o mesmo que Canvas ou Image.

Manuseio de UI de menus

 
 

Como a UI de MIDP é altamente abstrata, não há nenhuma regra específica para softbuttons ( botões de função ) e menus.

Commands são definidos como apropriados para a implementação de botões de função e menus. Devemos procurar respeitar o estilo nativo de cada aparelho, por exemplo, o botão "voltar" que deve ser implementado no botão de função direito.

Em aplicativos voltados para negócios, usa-se comumente API de alto nível, pois o importante é a portabilidade do produto. APIs de alto nível emprega uma alto grau de abstração, significando controle mínimo sobre o "look n feel" apresentado, ou seja, quando usamos APIs de alto nível, espera-se que o trabalho de adaptação de estilo e hardware seja feito pela implementação. Encontramos APIs de alto nível nas subclasses de Screen.

Comentários

Postagens mais visitadas deste blog

Instalar Módulo de Proteção Santander no Mac OSX Mountain Lion

Repararam que o módulo de proteção do banco Santander parou de funcionar? Isso, no meu caso foi quando atualizei o OSX para o Mountain Lion. Há quem diga que parou quando da atualização do navegador Safari. Enfin, depois de brigar um pouco com versões Java, consegui encontrar no forum da Apple a solução: Após atualizar o meu MacBook Pro para o Mountain Lion, o módulo de proteção do Santander parou de funcionar no Google Chrome. Ao clicar no botão instalar módulo de proteção, nada acontecia. Olhando o javascript mais a fundo, achei uma chamada a URL ' https://wwws.santandernet.com.br/MPS/moduloJava.html '. Ao inserir ela no browser e pressionar <ENTER>, recebia uma mensagem 'plugin inactive'. Pare resolver o problema, abri uma nova aba e entrei no endereço 'chrome://plugins/'. Naveguei até o plugin do Java, desabilitei o mesmo e reiniciei o chrome. Feito isso, entrei novamente no endereço e ativei este plugin. Ao entrar novamente no s...

GameDev Tutorial - Basic Circle Chain Engine Using Unity3D Part 1

Circle Chain ( http://www.emanueleferonato.com/stuff/circle_chain/ ) is a simple game developed in 2007 by Emanuele Feronato ( http://www.emanueleferonato.com ) as a monetization test in Flash Games. In fact it's based on Boomshine ( http://www.k2xl.com/games/boomshine/ ) Emanuele has since, ported his game tutorial for lots of platforms: AS3: (complete)  http://www.emanueleferonato.com/2012/02/20/circle-chain-ported-to-as3-with-commented-source-code-available-ready-to-jump-to-the-iphone/ Game Maker: (basic)  http://www.emanueleferonato.com/2012/06/07/circle-chain-engine-made-with-game-maker/ Construct2 HTML5:  http://www.emanueleferonato.com/2012/03/14/html5-version-of-circle-chain-engine-using-scirras-construct2/ Corona SDK:  http://www.emanueleferonato.com/2012/02/24/basic-circle-chain-engine-using-corona-sdk/ Gideros Studio:  http://www.emanueleferonato.com/2012/04/12/basic-circle-chain-engine-using-gideros-studio/ Stencyl:  http://www.emanueleferonato.com/2012/02/29/ba...

Basic Circle Chain Engine Using Unity3D Part 3

What we need to do in this third part: . RedBullet collides with GreenCircle. . GreenCircle spawn GreenBullets. . repeat the process each collision between "bullets" objects and GreenCircles. Basically we need add physics components to GameObjects, then add colliders. 1. In the prefab folder, select RedBulletPrefab. In the Inspector panel, at bottom, click the button Add Component > Physics > Rigidbody. Then uncheck "use gravity", check "Is kinematic" and I checked too the z position and x, y, z rotation freeze options. 2. With RedBulletPrefab selected, add a new physics component, collider. For bullets I choose Box Collider, for the Green Circle I added an Sphere Collider. Just check "Is trigger" since we will use C# script to control collisions.  3. Do the steps 1 and 2 above to GreenCirclePrefab. 4. Let's create a new prefab, GreenBulletPrefab. It's based in the RedBulletPrefab, so drag and drop RedBulletPrefab into H...