segunda-feira, 26 de agosto de 2013

Criando um notificação no Android


Quando se trabalha com Android é primordial a notificação ao usuário caso aconteça algo inesperado em sua aplicação ou até esperado. Por padrão, o Android tem uma barra de notificação “toolbar” onde todas as notificações de sua aplicação devem ser mostradas nela para não interromper a tela do usuário caso a notificação seja mostrada quando o usuário estiver navegando em alguma tela da aplicação. Esse exemplo que será mostrado agora ensina como criar uma notificação e removê-la ao clicar na notificação que foi criada na barrada de notificação, além de emitir som e vibração.


  1. public static void lauchNotification(Activity act) {

  2. NotificationManager nm = (NotificationManager) act.getSystemService(act.NOTIFICATION_SERVICE);
  3. Notification notif = new Notification(R.drawable.ic_launcher,"Notificação", System.currentTimeMillis());

  4. notif.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");
  5. notif.flags |= Notification.FLAG_AUTO_CANCEL;
  6. PendingIntent p = PendingIntent.getActivity(act, 0,new Intent(act.getApplicationContext(), MainActicity.class), 0);
  7. CharSequence from = "Minha Notificação!";
  8. CharSequence message = "Descricao da notificação";
  9. notif.setLatestEventInfo(act, from, message, p);

  10. // Som exitido junto com a notificação
  11. // ---100ms delay, vibrate for 250ms, pause for 100 ms and
  12. // then vibrate for 500ms---
  13. notif.vibrate = new long[] { 100, 250, 100, 500 };
  14. nm.notify(R.string.app_name, notif);

  15. }


Para utiliza-lo chame esse método onde quiser em sua aplicação. 


Abraços e até a próxima... :)

sexta-feira, 2 de agosto de 2013

Versões mais utilizadas do Android

O site Android Developers divulgou, um gráfico com os dados das versões mais utilizadas pelos consumidores do Android. As estatísticas dessas porcentagens são úteis para os desenvolvedores visualizarem melhor quais são as preferências e os dispositivos mais utilizados pelo público em geral.





VersãoCodenameAPIDistribuição
1.6Donut40,1%
2.1Eclair71,2%
2.2Froyo82,5%
2.3 - 
2.3.2
Pão de especiarias90,1%
2.3.3 - 
2.3.7
1033,0%
3.2Favo de mel130,1%
4.0.3 - 
4.0.4
Ice Cream Sandwich1522,5%
4.1.xJelly Bean1634,0%
4.2.x176,5%

*Os dados coletados durante um período de 14 dias encerrado em 01 de agosto de 2013. Todas as versões com distribuição inferior a 0,1% não são mostradas.

Fonte: http://developer.android.com/about/dashboards/index.html#Platform

sábado, 6 de julho de 2013

Exemplo Ciclo de vida - Activity Android

Pessoal, abaixo um codigo que pode ser colocado em uma activity android, com isso podemos criar situações no emulador e observar o comportamento de uma activity. Por exemplo, podemos durante a execução da activity podemos apertar o botão de back do emulador ou o de home e observar o log da aplicação para saber que metodo do ciclo de vida da activity foi chamado...

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i("ExemploCicloVida", "onCreate");
    }
 
    @Override
    protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    Log.i("ExemploCicloVida", "onStart");
    }
 
    @Override
    protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    Log.i("ExemploCicloVida", "onResume");
    }
 
    @Override
    protected void onRestart() {
    // TODO Auto-generated method stub
    super.onRestart();
    Log.i("ExemploCicloVida", "onRestart");
    }
 
    @Override
    protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    Log.i("ExemploCicloVida", "onPause");
    }
 
    @Override
    protected void onStop() {
    // TODO Auto-generated method stub
    super.onStop();
    Log.i("ExemploCicloVida", "onStop");
    }
 
    @Override
    protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    Log.i("ExemploCicloVida", "onDestroy");
    }
     
}

sexta-feira, 5 de julho de 2013

Activity - Ciclo de Vida Activity no Android

Talvez a classe mais importante do Android seja a Activity. De forma simplista, podemos dizer que ela é responsável por renderizar as views na tela ou até mesmo que ela é as telas do app. De acordo com a documentação do Google ela é simplesmente o que o nome diz, uma “atividade” que é basicamente a unica coisa que o usuário pode iteragir com seu smartphone.

Quando se trabalha com Activity no Android, é preciso muito mais que o desenvolvimento de Telas. Entender o ciclo de vida de uma Activity, é uma parte fundamental. Imagine que sua aplicação seja intenrropida de forma inesperada, seja por que o usuário abriu uma outra Activity e com isso houve algum fator que fez a Activity ser fechada, e até mesmo quando o Android finaliza ela quando ve a necessidade de memória. Desta forma é preciso entender cada ciclo de vida de uma Activity. Existem algums metodos na classe Acitivity que são responsaveis pelo seu ciclo de vida, são eles:

- onCreate() É um método obrigatório e é invocado uma vez. Geralmente nele é definido o View da Acitivity. Em seguida é invocado o onStart.

- onStart() É chamada imediatamente após a onCreate() – e também quando uma Activity que estava em background volta a ter foco.

- onResume() Sempre invocada quando a Activity recebe o foco novamente.

- onPause() Salva o estado da aplicação, quando o celular entra em modo de espera por exemplo. 

- onStop() – Quando a activity está sendo encerrada e não fica mais visivel ao usuário.

- onDestroy() Este método literalmente finaliza a aplicação e pode ser invocado também pelo sistema operacional, caso ele deseje desalocar recursos.

- onRestart() Quando uma Activity volta depois de ficar fora temporariamente e invoca o método onStart.

Logo abaixo uma imagem ilustrativa desse ciclo para facilitar o entendimento.




Até a proxima...

segunda-feira, 1 de julho de 2013

Criação do Ambiente de Desenvolvimento Android

Olá pessoal abaixo uma vídeo mostrando a criação do ambiente de desenvolvimento android e a criação de um simples exemplo. O vídeo é um pouco longo mais tentei ser bem objetivo. No fim do post alguns passos importantes para a criação.





Links Uteis:

- Java SE Development Kit (JDK):    http://www.oracle.com/technetwork/java/javase/downloads/index.html

- ADT Bundle:
http://developer.android.com/sdk/index.html

- Criando Variaveis de ambiente:
1- Acionar o botão direito do mouse em "Computador" e em seguida com o botão esquerdo em "Propriedades"
2- Clique em "Configurações Avançadas do Sistema"
3- Com a aba "Avançado" selecionada, clique em "Variáveis de ambiente"
4- Na parte de baixo da janela, em "Variáveis do sistema", clique em "Novo".
5- Em "Nome da variável", digite JAVA_HOME e em "Valor da variável", digite o caminho onde o JDK foi instalado, Ex.: C:\Program Files\Java\jdk1.6.0_34
6- Em seguida procure por uma variável de sistema chamada "Path" e clique em Editar
7- Essa variável pode conter diversas variáveis de ambiente já configuradas e que não devem ser apagadas.  Cada  uma  das  variáveis  é  separada  por  um  ponto-e-vírgula.  Precisamos acrescentar um ponto-e-vírgula e mais o endereço da pasta  bin da instalação do Java, que deve ser algo como: C:\Program Files\Java\jdk1.6.0_34\bin


Abraços...

terça-feira, 4 de dezembro de 2012

Utilizando Achartengine em sua aplicação Android. Crie diversos gráficos com a API

Olá pessoal, precisei utilizar gráficos em uma aplicação android e vou postar um exemplo que criei para facilitar para quem precisar depois.

Utilizei a API Achartengine, disponível para download aqui: http://www.achartengine.org/
Depois de adicionar a API no Build Path do projeto podemos começar.

Existem diversas propriedades da api que não conheço ainda mais pelo que já pesquisei encontrei algumas coisas bem interessantes. Segue o exemplo:



  1. public class BarGraphActivity extends Activity{
  2. private GraphicalView mChartView;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.bar_char_activity);
  7. createChart();
  8. }
  9. public void createChart(){
  10. int[] valores = {6, 7, 5, 3};
  11. CategorySeries series = new CategorySeries("Grafico de barras");
  12. for (int i = 0; i < valores.length; i++) {
  13. series.add(valores[i]);
  14. }
  15. XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
  16. dataset.addSeries(series.toXYSeries());
  17. XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
  18.    setChartSettings(renderer);
  19.    LinearLayout layout = (LinearLayout) findViewById(R.id.layout_chart);
  20.    mChartView = ChartFactory.getBarChartView(this, getBarDemoDataset(),
  21.     renderer, Type.DEFAULT);
  22.    layout.addView(mChartView);
  23. }
  24. private XYMultipleSeriesDataset getBarDemoDataset() {
  25.    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
  26.    int[] valores = {6, 7, 5, 3};
  27.    CategorySeries series = new CategorySeries("Demo series");
  28.    for (int i = 0; i < valores.length; i++) {
  29.     series.add(valores[i]);
  30.    }
  31.    dataset.addSeries(series.toXYSeries());
  32.    return dataset;
  33.  }
  34. public XYMultipleSeriesRenderer getBarDemoRenderer() {
  35.    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
  36.    renderer.setAxisTitleTextSize(16);
  37.    renderer.setBarSpacing(1);
  38.    renderer.setLegendTextSize(15);
  39.    SimpleSeriesRenderer r = new SimpleSeriesRenderer();
  40.    r.setColor(Color.YELLOW);
  41.    renderer.addSeriesRenderer(r);
  42.    return renderer;
  43.  }
  44. private void setChartSettings(XYMultipleSeriesRenderer renderer) {
  45.    renderer.setShowLegend(false);
  46.    renderer.setAxesColor(Color.DKGRAY);
  47.    renderer.setXAxisMin(0.5);
  48.    renderer.setXAxisMax(12.5);
  49.    renderer.setYAxisMin(0);
  50.    renderer.setYLabelsAlign(Align.RIGHT);
  51.    renderer.setXLabels(0);
  52.    renderer.setZoomEnabled(false, false);
  53.    renderer.setShowCustomTextGrid(true);
  54.    renderer.setShowGridY(true);
  55.    renderer.setShowGridX(true);
  56.    renderer.addXTextLabel(1, "Jan");
  57.    renderer.addXTextLabel(2, "Fev");
  58.    renderer.addXTextLabel(3, "Mar");
  59.    renderer.addXTextLabel(4, "Abr");
  60.     
  61.  }

  62. }

E o resultado disso tudo ficará assim:



Qualquer dúvida que tiverem tentarei ajudar, no site tem uma documentação legal e lá também está disponível para download um projeto com alguns exemplos utilizando outros tipos de gráficos.

Até a próxima... 

terça-feira, 11 de setembro de 2012

Criando arquivo de Properties em Java

Olá pessoal, em alguns projetos pode ser necessário a criação de um arquivo de parâmetros de configuração e nesse post vou mostrar como é simples criar um em java.

Criarei um arquivo texto com a seguinte estrutura:
chave=valor

Meu arquivo de configuração será o "properties.config" e contém esses parâmetros:


  1. chave1=parametro1
  2. chave2 =parametro2
  3. chave3 =parametro3
agora vamos ler o arquivo e imprimir no console os valores de cada chave:

  1. public static void main(String[] args) {
  2. Properties config = new Properties();
  3. String arquivo = "properties.config";
  4. try {
  5. config.load(new FileInputStream(arquivo));
  6. System.out.println(config.getProperty(" chave1"));
  7. System.out.println(config.getProperty(" chave2"));
  8. System.out.println(config.getProperty(" chave3"));
  9. } catch (FileNotFoundException e) {
  10. e.printStackTrace();
  11. } catch (IOException e) {
  12. e.printStackTrace();
  13. }
  14. }
e teremos as seguintes saídas no console:

parametro1
parametro2
parametro3

Com isso não será mais necessário recompilar seu código por um simples parâmetro, agora basta alterar o valor no arquivo de configurações do seu sistema.