Introdução a api de baixo nível do java me

1,917 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,917
On SlideShare
0
From Embeds
0
Number of Embeds
424
Actions
Shares
0
Downloads
35
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introdução a api de baixo nível do java me

  1. 1. Erisvaldo Gadelha Saraiva JúniorIntrodução a API de Baixo NívelJavaME Contato: erisvaldojunior@gmail.com
  2. 2. Objetivo Desenvolver aplicações para dispositivos móveis com interfaces arrojadas, através do uso da API de Baixo Nível do JavaME.Organize with Sections Imagens do Mobile Ticket Viewer, aplicação de Mobile Ticket desenvolvida pela Avaty! Tecnologia.
  3. 3. Roteiro de Aula Técnicas A API de Indo para a Avançadas e Baixo Nível Prática Exemplos Adicionais Introdução a API de Baixo Nível do JavaME
  4. 4. API de Baixo Nível Descrição das Classes e como usá-las
  5. 5. Estrutura de classes do MIDP A API de baixo nível consiste, basicamente, na classe Canvas e classes auxiliares (como Graphics, Image, Font). No MIDP 2.0 ou superior, sua classe derivada, GameCanvas, bem como as classes que compõem a Game API, também são consideradas de baixo nível.
  6. 6. Estrutura EXPANDIDA de classes do MIDP
  7. 7. O que é a classe Canvas? Canvas é uma classe abstrata que deve ser especializada para a confecção de uma tela em baixo nível. As classes que herdam de Canvas DEVEM implementar o método paint(), responsável porClasse Canvas desenhar a tela. As classes que herdam de Canvas PODEM implementar o método keyPressed(), responsável por verificar se uma determinada tecla foi pressionada.
  8. 8. Como desenhar usando Canvas? O método paint() recebe como argumento uma instância de Graphics, com a qual é possível desenhar na tela. Graphics possuiClasse Canvas diversos métodos para desenhar na tela, tais como: drawImage(), drawRect(), fillRect(), drawString(), etc.
  9. 9. E quanto aos diversos tamanhos de tela? A altura e a largura da tela podem ser obtidas pelos métodos getHeight() e getWidth(), respectivamente. Todos os desenhos devem serClasse Canvas posicionados de acordo com as dimensões da tela (posições relativas), nunca com números fixos (posições absolutas).
  10. 10. Como capturar as teclas pressionadas? Qualquer tecla que o usuário pressionar pode ser tratada pelo método keyPressed(), que recebe um inteiro como argumento indicando o código da tecla pressionada. PROBLEMA: asClasse Canvas “Soft Keys” não possuem constantes definidas em Canvas, ou seja, o código das teclas varia de aparelho para aparelho.
  11. 11. Teclas em CanvasA classe Canvas possui uma série deconstantes que referenciam os códigos dasteclas do aparelho.Essas constantes devem ser usadas emdetrimento do inteiro correspondente porqueo seu valor pode variar de um aparelho para ooutro.
  12. 12. Indo para a Prática Construindo uma interface com a API de Baixo Nível
  13. 13. Primeiro exercício:SPLASHSCREEN
  14. 14. Código Splash Screen Âncoras especificam o posicionamento da imagem relativo ao ponto (X, Y) no qual se deseja inserí-la na tela. Nesse caso, a imagem está sendo centralizada nesse ponto.
  15. 15. Segundo ExercícioComo construir um menu elegante para o meujogo ou aplicativo? Sprites são a solução.
  16. 16. Sprite é uma classe da Game API do MIDP 2.0 Sprites são criados a partir de imagens que possuem um ou mais frames. Os Sprites podem ser animados, rotacionados, espelhados, etc.
  17. 17. Crie uma nova instância da classe Sprite; Defina a posição do mesmo através dos métodos defineReferencePixel() e setRefPixelPosition(); Construtor da classe Sprite Desenhe o Sprite na tela, através do método paint(); Você poderá alterar o frame do Sprite a qualquer momento através dos métodos nextFrame(), prevFrame() eComo adicionar um Sprite no Canvas? setFrame().
  18. 18. Vamos ao desafio! Use Canvas para representar a tela, o método drawString() para os textos e represente o background e cada botão como uma instância de Sprite. Por fim, implemente o método keyPressed() de forma a navegar peloVocê é a capaz de construir menu. Note que basta mudar o frameo menu acima? da opção selecionada e definir o frame dos demais como sendo o inicial.
  19. 19. Técnicas Avançadas eExemplos AdicionaisTécnicas Avançadas para a criação de aplicações profissionais
  20. 20. DIFERENTES TELAS» Os dispositivos móveis possuem telas com vários tamanhos e resoluções;» A API de baixo nível do JavaME não possui suporte nativo a redimensionamento de imagens;» É necessário realizar esse redimensionamento “na unha” ou, ainda, oferecer imagens de diferentes tamanhos e utilizar a mais adequada para a tela do aparelho.
  21. 21. Diferentes Telas: Solução Proposta Cada imagem da aplicação pode estar disponível em três tamanhos, para telas pequenas, médias e grandes. Por exemplo: 128x160 (Tela Pequena), 176x208 (Média) e 240x320 (Grande); Ao iniciar a aplicação, obtém-se a altura e a largura da tela e, a partir dessas, carrega-se as imagens adequadas para o tamanho de tela específico; No caso do background, pode-se redimensionar a imagem logo após obter-se a altura e largura da tela do aparelho, assegurando que o mesmo irá preencher toda a tela.
  22. 22. Para garantir a portabilidade, faz-se necessário a adoção de uma das seguintes soluçõespara tratar as diferenças dos códigos das SOFT KEYS entre os dispositivos:1. Usar Commands caso não haja necessidade de formatação específica para os botões inferiores;2. Detectar, em tempo de execução, o fabricante do aparelho e, assim, configurar os valores adequados;3. Definir diretivas de pré-compilação de forma a gerar JARs específicos para cada família de aparelhos, cada qual com os valores corretos das Soft Keys (J2ME Polish faz esse trabalho).
  23. 23. ? E quanto a fonte… Como posso mudar? BITMAP FONTS são a solução!
  24. 24. What’s Your Message?OBRIGADO!

×