Componentes Canvas - Um botão tocável em JME usando Canvas
Ensinarei como criar um componente reutilizável em Canvas. Criaremos um botão tocável, que você poderá usar em qualquer tela Canvas em JME. Esse botão só deve ser usado em devices Touch Screen.
O funcionamento se dará da seguinte forma. Criaremos uma classe chamada ImageButtom que representará o botão em si. Ele será eficiente de tal forma que será capaz de se pintar na tela Canvas em que ele estiver, e de disparar eventos quando ele for tocado.
Ele pintará uma imagem de fundo, com o design de um botão. Essa imagem poderá ser carregada por ele mesmo, ou poderá ser passada como parâmetro para ele usar. No construtor do botão poderemos informar então o caminho da imagem que ele deve carregar, ou passaremos a imagem diretamente, já carregada, para ele usar. Qual a diferença? Bem, se temos 2 ou mais botões em uma mesma tela, devemos carregar a imagem apenas uma vez em memória e passá-la aos 2 botões. Assim teremos 2 botões usando a mesma imagem em memória. Se passássemos o caminho da imagem para os 2 botões, cada um carregaria a imagem uma vez na memória, desperdiçando memória. Devemos passar o caminho da imagem para o botão apenas quando teremos apenas 1 botão na tela.
Além da imagem, o construtor deverá pedir pela posição X e Y em que o botão deve ser pintado na tela, bem como o label ou texto que deve ser escrito no centro do botão.
Evento de Toque
Como o botão saberá que ele foi tocado? Bem, quando uma tela Canvas é tocada, é chamado o método pointerReleased(x,y) que tem como parâmetros a posição do toque. Isso acontece em toda tela Canvas naturalmente. Precisaremos apenas sobrescrever esse método da tela Canvas e verificar em qual botão da tela o toque aconteceu. Exemplo:
protected void pointerReleased(int x, int y) {//Verifica se o primeiro botão Alerta foi tocadoif (botaoAlerta.isTouched(x, y))return;//Verifica se o primeiro botão Sair foi tocadoif (botaoSair.isTouched(x, y))return;}

Aqui na empresa, todas as aplicações são feitas em Canvas para melhor qualidade visual. A maioria de nossas aplicações devem rodar em JME e nativamente em BlackBerry. Aplicações BlackBerry usam APIs da própria RIM, embora as aplicações nativas BlackBerry suportem a maioria das APIs JME. Quando se desenvolve aplicações BlackBerry, as telas e uso de classes para controle de interface gráfica são bem diferentes da API do JME. Normalmente, se quiser ter a mesma aplicação JME rodando nativamente em BlackBerry deve-se criar um novo projeto, refazendo cerca de 80% da aplicação.
Citei nos posts passados como integrar sua aplicação com o SO BlackBerry, fazendo com que sua aplicação inicie chamadas, envie e-mails e SMS. Agora vou mostrar como é fácil fazer com que sua aplicação marque um compromisso para o usuário, na agenda/calendário do BlackBerry.
Participei do Nokia Code Camp aqui no Rio, hoje, na sessão de Python for S60.
O uso de acelerômetro abre muitas possibilidades legais de desenvolvimento, e agora que o novíssimo BlackBerry Storm possui esse recurso, vale a pena explorá-lo.
Para os que desejam desenvolver para BlackBerry aproveitando os novos recursos dos novíssimos modelos BlackBerry Storm, Bold e Pearl Flip, a Rim já disponibilizou para download free a nova JDE v4.7 (beta) e novos emuladores para os modelos.
Ensinarei nesse post a instalar MIDlets JME nos devices BlackBerry de 2 maneiras.
Ensinarei alguns macetes para você que desenvolveu uma aplicação nativa BlackBerry, e precisa publicá-la na web, para que outras pessoas possam instalá-la em seus devices usando o browser do próprio device, tal como fazemos com aplicações JME MIDlets. Chamamos esse tipo de publicação de OTA.
É muito prático, principalmente na hora do desenvolvimento, enviar suas aplicações nativas para o BlackBerry usando o cabo USB. Você precisará apenas do .COD final, aquele que é gerado na pasta do emulador BlackBerry.