Android – Criando Menus de opções (Creating an Options Menu – onCreateOptionMenu)

options menu

 

O menu de opções é onde você deve incluir ações e outras opções que são relevantes para o contexto da atividade atual, como “Atualizar”, “Editar” e “Configurações”.

Para todos os tipos de menu o Android fornece um formato XML padrão para definir os itens. Em vez de construir um menu no código de sua atividade, você deve definir um menu e todos os seus itens em um XML. Você então infla o recurso menu (carregá-lo como um Menu de objeto) em sua atividade.

O recurso de menu em XML é uma boa prática por algumas razões:

  • É mais fácil de visualizar a estrutura do menu em XML.
  • Ele permite que você crie configurações do menu alternativas para diferentes versões da plataforma, tamanhos de tela e outras configurações, aproveitando os recursos do aplicativo.

Para definir o menu, crie um arquivo XML dentro do seu projeto na seguinte pasta res/menu/ (se a pasta menu não estiver criada, crie)

O XML de menu segue alguns padrões que podem ser observados com mais atenção AQUI (Developers – Menu). Abaixo segue um exemplo aonde vamos criar dois menus, um na ActionBar e o outro fora da ActionBar.

<?xml version="1.0" encoding="UTF-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_delete"
          android:icon="@android:drawable/ic_menu_delete"
          android:title="@string/menu_delete"
          android:showAsAction="ifRoom"/>
    <item android:id="@+id/menu_edit"
          android:icon="@android:drawable/ic_menu_edit"
          android:title="@string/menu_edit" />
</menu>

Como visto acima cada item é um menu, veja o que cada atributo de “item” pode fazer:

android:id A ID do recurso que é exclusivo para o item, o que permite que o aplicativo ser capaz de reconhecer o item quando o usuário seleciona-lo.

android:icon Uma referência a um drawable para usar como ícone do item.

android:title Uma referência a uma string para usar como título do item.

android:showAsAction Especifica quando e como este item deve aparecer como um item de ação na ActionBar.

Onde os itens em seu menu de opções aparecerá na tela depende da versão para a qual você desenvolveu sua aplicação.

Na API 10 ou inferior o menu de opções sempre aparecera no rodapé do layout.

API 10

API 10

Na API 11 ou superior você tem a opção de inseri-las na action bar, por padrão essa opção não é ativada, caso queira, marque a tag android:showAsAction=”ifRoom” no seu item.

API 11

API 11

 

Para especificar o menu de opções para uma atividade você deve substituir o método onCreateOptionsMenu() ao substitui-lo você deve inflar o layout desejado através da classe MenuInflate.

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }

Para verificarmos qual item foi selecionado vamos substituir o método onOptionsItemSelected(MenuItem item):

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.menu_edit:
                Toast.makeText(this, "MENU EDIT", Toast.LENGTH_LONG).show();
                return true;
            case R.id.menu_delete:
                Toast.makeText(this, "MENU DELETE", Toast.LENGTH_LONG).show();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

Veja o resultado:

Exemplo OptionsMenu

Exemplo OptionsMenu

 

Projeto de Exemplo:(AQUI) DropBox

 

Fonte da imagem: http://goo.gl/Enpf4P
Fonte: http://goo.gl/ZRiA

Integrando o SDK Android ao NetBeans

android-and-netbeans

 

Nesta publicação vamos mostrar como integrar o Android SDK ao NetBeans. O NetBeans é uma excelente IDE e como muitas pessoas não se familiarizaram com a interface do Eclipse ela é a mais recomendada para programadores Java.

Vamos utilizar as seguintes ferramentas: NetBeans 7.3.1, Android SDK R22 (aprenda como instalar aqui)

A integração do Android ao Netbeans não passa de um Plugin. Para iniciar a instalação vamos fazer os seguintes passos: Continue reading

Android – Atualizando a interface gráfica com o Handler

android async task handler

O Handler é uma classe do pacote android.os, como o próprio nome já diz ele é um “Manipulador”. Quando você cria um novo Handler, ele é destinado à fila de mensagens/threads do thread que o criou. A partir daí toda mensagem que for destinada a ele será entregue para aquela fila de mensagens para serem executadas. Resumidamente ele fica responsável por entregar as mensagens para a fila de sua thread, executando-as em seguida.

Ele pode ser utilizado de duas maneiras: (1) para agendar mensagens e Threads a serem executadas e (2) para enfileirar uma ação a ser executada em um segmento diferente do qual foi enviada. Neste artigo vamos abordar somente a segunda maneira.

A seguir vamos mostrar quando e porque utilizar o Handler. Continue reading

Android – Como fazer uma chamada de telefone programaticamente? (How to make a phone call programatically?)

android-incoming-call

Para realizar ligações através de seu código, basta utilizar um Intent com a ação ACTION_CALL e passar os dados necessários, no caso, o telefone. Os dados são passados dentro de uma Uri, seguido do valor: “tel:telefone”.

Nota: não haverá restrições sobre quais aplicativos podem iniciar uma chamada,  esta intenção não pode ser usado para chamadas de emergência. Os aplicativos podem discar números de emergência utilizando ACTION_DIAL.

Primeiramente vamos adicionar a seguinte permissão: Continue reading

Android – Usando cores por xml (Using color in Android, by XML)

color_spectrum

Para definirmos cores padrões em nosso projeto, vamos criar um xml na pasta res/values/ com o nome “cores.xml”, esse nome não é importante para o Android, assim você pode criar uma organização de cores por arquivo xml no qual você tenha: “cores_telas.xml”, “cores_menus.xml”, etc.

Em nosso arquivo xml de cores vamos defini-lo da seguinte maneira:

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<color name="fundo">#A4C639</color>
	<color name="menu">#231344</color>
</resources>

Também é possível adicionar camada Alfa nas cores, para obter transparência. A camada alfa é adicionada antes da cor, segue o padrão: “#AARRGGBB”. (AA=alfa,RR=red,GG=green,BB=blue)
O valor de Alfa assim como os outros é em Hexa Decimal, que vai de 00(totalmente transparente) à FF(sem transparência).

Através deste site: http://redinput.com/colors você pode definir suas cores e gerar o arquivo.

Agora que definimos nossas cores, vamos utiliza-las, veja também outras maneiras de utilizar cor: Continue reading

Android – Implementar a câmera usando SurfaceView (How can I implement the Android camera)

android-camera-surfaceview

A classe Camera é usado para definir as configurações de captura de imagem, iniciar, parar a visualização, tirar fotos, e recuperar quadros para codificação de vídeo. Esta classe é um cliente para o serviço de câmera, que gerencia o hardware da câmera real.

Para acessar a câmera do dispositivo, você deve declarar suas permissões no manifest:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

Neste post vamos realizar uma implementação simples, sem orientações e alterações nas configurações da câmera.

Vamos utilizar o componente SurfaceView para exibir a câmera e um botão para tirar a foto. Nossa tela deve ficar da seguinte maneira: Continue reading

Java / Android – Remover acentos de uma String

acentos

Remover acentos de uma String
Java Removendo acentuação
Como remover acentos de uma String
Normalize String
Java remover acentuação
String remover acentuação

Resultado:

run:
a c guilherme biff a a a a u helpdev

Picasso – Uma poderosa biblioteca para cache e download de imagens para Android.

 A biblioteca Picasso, permite o carregamento de imagem “sem problemas” para sua aplicação, ela gerencia toda a parte de download e exibição de imagem com um controle muito eficaz.
Ela possui recursos essenciais, que nós programadores temos dificuldades em implementar, como:
  •  Manipulação de reciclagem do ImageView e controle do cancelamento de download no adapter.
  •  Transformações de imagem complexas, com uso de memória mínima.
  • Cache de memória e disco automático.
Resumindo, essa biblioteca é SHOW!
Para mais detalhes, download, exemplos:

http://square.github.io/picasso/

Android + Servlet – Como criar um Servlet para tráfego de objetos com o Android

comunicacao

“Servlet (servidorzinho em tradução livre) é um componente como um servidor, que gera dados HTML e XML para a camada de apresentação de uma aplicação Web. É basicamente uma classe na linguagem de programação Java que dinamicamente processa requisições e respostas, proporcionando dessa maneira novos recursos aos servidores. A definição mais usada considera-os extensões de servidores. Servlet é um módulo que estende a funcionalidade de um servidor Web, através de módulos de aplicação implementados em Java.” (Wikipédia)

O objetivo desse post é mostrar como criar um Servlet para se comunicar via objetos com um cliente Android. No exemplo vou utilizar o NetBeans 7.3 com Glassfish e o Android com uma maquina virtual 4.2.2. O objetivo deste post não é explicar toda estrutura do Servlet, mas sim explicar a criação de um projeto simples que receba um objeto e retorne outro.

Vamos iniciar com a criação do Servlet: Continue reading