Your SlideShare is downloading. ×
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Capítulo 07 - Acesso a câmera e arquivos armazenados no device

1,728

Published on

Neste capítulo discutimos o acesso a arquivos armazenados no device e utilização da câmera do celular. Itens discutidos: …

Neste capítulo discutimos o acesso a arquivos armazenados no device e utilização da câmera do celular. Itens discutidos:
1. Carregar imagens armazenadas no device com Bitmap, BitmapFactory, decodeFile e createScaleBitMap.
2. Chamada à camêra usando uma Intent implícita;
3. Iniciar uma Intent e aguardar o seu resultado;
4. Método startActivityForResult()

Published in: Education
1 Comment
7 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,728
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
378
Comments
1
Likes
7
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Capítulo 07: Câmera e Arquivos
  • 2. Instrutor ● Programador desde 2000 ● Aluno de doutorado ● ● ● ● Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB – FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio palheta M.Sc. Márcio Palheta
  • 3. Agenda ● Arquivos ● Usar Intent implícita da Câmera do Device ● Passagem de parâmetros para a Câmera ● Captura de imagens da câmera ● Recuperar resultados de uma Activity ● Carregar imagens de arquivos salvos no device ● A imagem é perdida quando giramos a tela. E agora? M.Sc. Márcio Palheta 3/41
  • 4. Agora queremos completar o cadastro ● ● ● ● Para completar o cadastro do aluno, queremos usar a câmera do device para capturar sua foto; O arquivo .jpeg da foto ficará armazenado no device No SQLite, guardaremos apenas o caminho para o arquivo físico Na hora de carregar a foto, pegamos o caminho armazenado no SQLite, acessamos o device e carregamos a imagem na tela. M.Sc. Márcio Palheta 4/41
  • 5. Android e o sistema de Arquivos ● No Android, temos as classes tradicionais de arquivos: – ● FileInputStream e FileOutputStream; A Activity tem métodos para gerar esses objetos: – FileInputStream stream = openFileInput("arquivo.txt"); ● E se você precisar trabalhar com memória externa? ● File diretorio = Enviroment.getExternalStorageDirectory() ● Devolve um diretório externo, provavelmente, um sdcard M.Sc. Márcio Palheta 5/41
  • 6. Câmera ● ● ● O android nos oferece duas formas de manipular câmera, assim como ocorreu com a Chamada Telefônica Na 1a, podemos usar e controlar todo o ciclo de vida e opções do uso da câmera, como, por exemplo, habilitar flash e controlar a entrada de luz Na 2a, podemos chamar uma Activity especialista no tratamento da câmera. Essa Activity recebe como parâmetro, o local para salvar a foto capturada. ● Bom, acho uma boa optarmos pela 2a alternativa. ● E vamos aos códigos... M.Sc. Márcio Palheta 6/41
  • 7. Exercício 01: Carregar jpeg com a foto ● Crie o método FormularioHelper.carregarFoto() M.Sc. Márcio Palheta 7/41
  • 8. Exercício 01: Carregar jpeg com a foto Crie o método carregarFoto() ● Crie o método FormularioHelper.carregarFoto() M.Sc. Márcio Palheta 8/41
  • 9. Exercício 01: Carregar jpeg com a foto ● Converte um Arquivo em um Crie oJAVA Objeto método Crie o método carregarFoto() FormularioHelper.carregarFoto() M.Sc. Márcio Palheta 9/41
  • 10. Exercício 01: Carregar jpeg com a foto ● Converte um Arquivo em um Crie oJAVA Objeto método Crie o método carregarFoto() FormularioHelper.carregarFoto() Definição de uma Imagem reduzida M.Sc. Márcio Palheta 10/41
  • 11. Exercício 01: Carregar jpeg com a foto ● Converte um Arquivo em um Crie oJAVA Objeto método Crie o método carregarFoto() FormularioHelper.carregarFoto() Definição de uma Imagem reduzida Atualiza o atributo foto do Aluno M.Sc. Márcio Palheta 11/41
  • 12. Exercício 01: Carregar jpeg com a foto ● Converte um Arquivo em um Crie oJAVA Objeto método Crie o método carregarFoto() FormularioHelper.carregarFoto() Definição de uma Imagem reduzida Atualiza o atributo foto do Aluno Atualiza a imagem na Tela M.Sc. Márcio Palheta 12/41
  • 13. Exercício 02: Altere o FormularioHelper M.Sc. Márcio Palheta 13/41
  • 14. Exercício 02: Altere o FormularioHelper Carregar a foto do Aluno M.Sc. Márcio Palheta 14/41
  • 15. Exercício 02: Altere o FormularioHelper Carregar a foto do Aluno Crie o método getFoto() M.Sc. Márcio Palheta 15/41
  • 16. Hora de chamar a câmera ● Para acessar a câmera, vamos seguir a estratégia de chamar uma Intent implícita, especialista em câmera: Intent irParaCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); ● Podemos informar o local para salvar a foto: irParaCamera.putExtra(MediaStore.EXTRA_OUTPUT, localFoto); ● ● E esperar o retorno, com nome do arquivo gerado. Para isso, informamos um código para a requisição (requestCode), comumente associado a uma constante: startActivityForResult(irParaCamera, FAZER_FOTO); M.Sc. Márcio Palheta 16/41
  • 17. Hora de chamar a câmera (continuação) ● O retorno do método startActivityForResult() vem no callback method onActivityResult() @Override protected void onActivityResult( int requestCode, int resultCode, Intent data) { … } ● O requestCode == FAZER_FOTO ● Já o resultCode pode ser: – RESULT_OK: ocorreu tudo bem. :-) – RESULT_CANCELED: em caso de problemas ou cancelamento :-( M.Sc. Márcio Palheta 17/41
  • 18. Exercício 03: Mudanças no Formulário ● Na classe FormularioActivity, inclua novos atributos para lidar com a câmera: M.Sc. Márcio Palheta 18/41
  • 19. Exercício 03: Mudanças no Formulário ● Na classe FormularioActivity, inclua novos atributos para lidar com a câmera: M.Sc. Márcio Palheta 19/41
  • 20. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: M.Sc. Márcio Palheta 20/41
  • 21. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: Controle do click da Foto do Aluno M.Sc. Márcio Palheta 21/41
  • 22. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: Controle do click da Foto do Aluno Devolve o ImageView da foto M.Sc. Márcio Palheta 22/41
  • 23. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: Controle do click da Foto do Aluno Devolve o ImageView da foto M.Sc. Márcio Palheta 23/41
  • 24. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: M.Sc. Márcio Palheta 24/41
  • 25. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: Local em que a Foto será armazenada M.Sc. Márcio Palheta 25/41
  • 26. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: Local em que a Foto será armazenada Referência para o Local de armazenamento M.Sc. Márcio Palheta 26/41
  • 27. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: Local em que a Foto será armazenada Referência para o Local de armazenamento Intent Implícita para uso da câmera M.Sc. Márcio Palheta 27/41
  • 28. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: Chamando a Câmera M.Sc. Márcio Palheta 28/41
  • 29. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: Parâmetro: local de armazenamento Chamando a Câmera M.Sc. Márcio Palheta 29/41
  • 30. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: Inicia a Activity da Câmera. A resposta é lançada no método de Callback onActivityResult() Parâmetro: local de armazenamento Chamando a Câmera M.Sc. Márcio Palheta 30/41
  • 31. Exercício 04: Click da Imagem ● No método FormularioActivity.onCreate(), implemente o click da foto: Inicia a Activity da Câmera. A resposta é lançada no método de Callback onActivityResult() Parâmetro: local de armazenamento Código da requisição M.Sc. Márcio Palheta (requestCode) Chamando a Câmera 31/41
  • 32. Exercício 05: Verificação do resultado ● Na ForumlarioActivity, crie o método onActivityResult(), para verificar o resultado retornado pela Intent da Câmera: M.Sc. Márcio Palheta 32/41
  • 33. Exercício 05: Verificação do resultado ● Na ForumlarioActivity, crie o método onActivityResult(), para verificar o resultado retornado pela Intent da Câmera: Tratamento da resposta da Intent da câmera M.Sc. Márcio Palheta 33/41
  • 34. Teste das atualizações Click na ImageView M.Sc. Márcio Palheta 34/41
  • 35. Teste das atualizações Capture a imagem M.Sc. Márcio Palheta 35/41
  • 36. Teste das atualizações Salve a imagem M.Sc. Márcio Palheta 36/41
  • 37. Teste das atualizações Imagem Atualizada M.Sc. Márcio Palheta 37/41
  • 38. Desafio ● Quando cadastramos um aluno, o formulário está vazio; ● Se você clicar na foto, a câmera é chamada; ● A foto é salva no device; ● E exibida na tela de formulário; ● Porém, se girarmos a tela, o que acontece? ● Isso mesmo, a foto é perdida. ● Resolva esse problema, recorrente em Android Apps ● Ideia fantástica: acho que você pode usar o Bundle. ● Só acho :-) M.Sc. Márcio Palheta 38/41
  • 39. O que vem a seguir? ● LayoutInflater ● Serviços de background: Receber SMS e Tocar MP3 ● Integração via JSON ● Tarefas assíncronas e Barra de progresso ● Fragments ● Google Maps e GPS M.Sc. Márcio Palheta 39/41
  • 40. Referências ● www.caelum.com.br ● d.android.com ● ● LECHETA, Ricardo. Google Android, 3a edição, Novatec, São Paulo, 2013 Código fonte completo: https://github.com/marciopalheta/cursosandroid M.Sc. Márcio Palheta 40/41
  • 41. Capítulo 07: Câmera e Arquivos

×