Avançar para o conteúdo principal

Mensagens

Android - Scroll View e outras afinações

No post anterior, ao criar a nossa primeira aplicação Android, o código utilizado foi, por opção, simples. Não sendo implementados mecanismos de validação dos dados, de igual modo a interface, apesar de utilizar duas atividades com dois layouts, era básica. Neste exemplo vamos criar um programa simples mas com alguns mecanismos fundamentais em aplicações robustas, nomeadamente, verificação dos dados introduzidos e um scroll view que permite visualizar informação que não cabe no espaço disponível no ecrã do dispositivo. Durante este artigo implementamos dois menus, um que é apresentado com o botão menu do dispositivo e outro que está sempre visível na barra no nome da aplicação. O que se pretende é demonstrar conceitos simples ao criar um programa que nos vai mostrar a tabuada de um determinado valor introduzido pelo utilizador. Então começamos, criamos um projeto novo no Eclipse com uma atividade principal, a MainActivity. A Interface da MainActivity A interface é muito simple...

Android - para tudo há uma primeira vez

Depois de termos visto como criar um projeto em Eclipse para a plataforma Android vamos agora criar um pequeno programa que permite demonstrar o modo como se pode implementar uma interface com vários "ecrãs", os denominados formulários da plataforma .NET. Para tal vamos criar um pequeno programa que lê do utilizador três notas (teste, exame e trabalho), cada nota tem um determinado valor percentual na nota final (teste - 30%, trabalho - 20% e exame - 50%). Assim vamos criar uma interface que permite a leitura dos valores e que apresenta um botão para calcular o valor da nota final. Primeiro preparamos a primeira activity com a seguinte interface: Então temos três TextViews, que é o objeto que permite mostrar texto no ecrã, semelhante ao Label da plataforma .NET. Incluímos, ainda, três EditTexts que permitem receber do utilizador os valores pretendidos, neste exemplo valores númericos, na plataforma .NET são as TextBoxes. Por fim um botão. O código XML ficou assim: <Relativ...

Pong para ecrãs tateis

Hoje em dia todas as aplicações devem implementar mecanismos que permitam o controlo através do próprio ecrã, os dispositivos móveis não tem teclado tradicional por isso a interação com o utilizador será através do ecrã tátil. Assim o PONG apresentado no post  http://modoseguranca.blogspot.pt/2012/05/pong-em-flash-as30.html  sofreu uma atualização que permite controlar a raquete do jogador através de dois botões no palco. Para podermos controlar os botões mantendo o dedo premido e não ser necessário fazer sucessivos "cliques" com o dedo é necessário criar uma variável para cada botão que indica se o botão foi premido e ainda não foi libertado, uma simples boolean permite implementar este mecanismo. var cima_on:Boolean=false; var baixo_on:Boolean=false; Depois na função que movimenta a bola, que está associada a um timer adicionamos o seguinte código: /*Raquete do jogador*/ if (cima_on){ if(jogador1.y>0) jogador1.y -=5; dir_j1=-5; } if (baixo_on){ if...

E agora que tal uma sobremesa?!

Este verão dediquei algum tempo à plataforma Android. Para desenvolver aplicações para esta aplicação tive de instalar o software de desenvolvimento mais utilizado para esta plataforma, o Eclipse . Depois da instalação do Eclipse e do Java SE Development Kid (JDK)  "foi só" instalar o plugin da google designado por Android Development Tools (ADT) cujas instruções de instalação podem ser encontradas aqui . Depois deste penoso processo de instalação podemos passar ao desenvolvimento propriamente dito. Vamos criar o tradicional Olá Mundo em Java para Android. Para testar a nossa aplicação vamos utilizar o emulador e um dispositivo físico real, um HUAWEI Ascend G300. O seguinte vídeo apresenta o processo de criar o projeto, a interface bem como o pouco código necessário. Esta é a função que responde ao clique no botão "Fechar". public void clickSair(View view){     finish(); //termina a aplicação } Nas propriedades do botão indicamos o nome da função a ch...

Delegates

Um delegate pode ser definido como um ponteiro para uma função. O delegate encapsula o endereço de uma função no seu código. As funções associadas a eventos são um exemplo da utilização de delegates, quando o evento “acontece” é chamada a função para a qual o delegate aponta. Os delegates podem agrupar funções que são chamadas em conjunto. Para utilizarmos delegates começamos por definir um: Private Delegate Sub MinhaFuncao () Agora vamos criar a função que será associada ao delegate:     Private Sub EscreveDebug()         Debug .Print( "Olá mundo" )     End Sub De seguida criamos uma variável do tupo do delegate e associamos à função:       Dim funcDel As MinhaFuncao   Depois associamos a variável à respectiva função:      funcDel = New MinhaFuncao ( AddressOf EscreveDebug) Por fim executamos a função através do delegate:      funcDel.Invoke() Delegates Multic...

Hashtables - Tabelas de Dispersão

As hashtables são, nas linguagens de programação modernas, uma das estruturas mais úteis para armazenar grandes quantidades de informação. As suas principais características são: Não são ordenadas, ou seja um ciclo de pesquisa sequencial pode obter os dados por qualquer ordem; São muito eficientes nas pesquisas, na maior parte das situações basta uma comparação para obter o valor a pesquisar, independentemente do número de elementos na tabela; Internamente cada elemento representa uma lista ligada; Ao inserir um elemento deve ser indicada uma chave da qual é calculado o código hash que servirá para indexar o elemento na tabela, muito importante, o código hash é obtido a partir da chave e não dos valores armazenados; Caso existe um elemento com a mesma chave o novo elemento inserido substitui o antigo; Para obter um elemento basta indicar a chave associada; A principal desvantagem é o espaço em memória que a tabela necessita. A plataforma .NET implementa dois tipos de hashtables: Dictio...

PONG em Flash AS3.0

Mais um pequeno jogo para demonstrar algumas das funcionalidades do AS3.0. Para este exemplo vamos implementar uma versão do Pong. Para este Pong vamos criar a possibilidade de acelerar a bola com a raqueta e, para tornar o jogo mais difícil, quando se atingir uma determinada pontuação fazemos aparecer uma parede no meio do campo de jogo. O código é muito parecido com o jogo do post anterior, mas um pouco mais complicado. Para controlar a nossa raqueta utilizamos a seguinte função: function teclado(e:KeyboardEvent):void{ dir_j1=0; if (e.keyCode == Keyboard.UP){ if(jogador1.y>0) jogador1.y -=5; dir_j1=-5; } if (e.keyCode == Keyboard.DOWN){ if(jogador1.y<370) jogador1.y +=5; dir_j1=5; } } Agora está mais simples pois só percorremos as linhas, ou seja, a coluna nunca muda. A raqueta que é controlada pelo computador depende do seguinte código: function movepc():void { if (bola.y>jogador2.y) jogador2.y = jogador2.y + velocidade_y; if (bola.y<jogador2.y) joga...