• Nenhum resultado encontrado

Capítulo 07: Câmera e Arquivos

N/A
N/A
Protected

Academic year: 2022

Share "Capítulo 07: Câmera e Arquivos"

Copied!
41
0
0

Texto

(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

(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?

(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.

(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

(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.

(7)

Exercício 01: Carregar jpeg com a foto

Crie o método FormularioHelper.carregarFoto()

(8)

Exercício 01: Carregar jpeg com a foto

Crie o método FormularioHelper.carregarFoto()

Crie o método

carregarFoto()

(9)

Exercício 01: Carregar jpeg com a foto

Crie o método FormularioHelper.carregarFoto()

Crie o método carregarFoto() Converte um

Arquivo em um

Objeto JAVA

(10)

Exercício 01: Carregar jpeg com a foto

Crie o método FormularioHelper.carregarFoto()

Crie o método carregarFoto() Converte um

Arquivo em um Objeto JAVA

Definição de uma

Imagem reduzida

(11)

Exercício 01: Carregar jpeg com a foto

Crie o método FormularioHelper.carregarFoto()

Crie o método carregarFoto() Converte um

Arquivo em um Objeto JAVA

Definição de uma Imagem reduzida

Atualiza o atributo

foto do Aluno

(12)

Exercício 01: Carregar jpeg com a foto

Crie o método FormularioHelper.carregarFoto()

Crie o método carregarFoto() Converte um

Arquivo em um Objeto JAVA

Definição de uma Imagem reduzida

Atualiza o atributo foto do Aluno

Atualiza a imagem

na Tela

(13)

Exercício 02: Altere o FormularioHelper

(14)

Exercício 02: Altere o FormularioHelper

Carregar a foto

do Aluno

(15)

Exercício 02: Altere o FormularioHelper

Carregar a foto do Aluno

Crie o método

getFoto()

(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:

Podemos informar o local para salvar a foto:

E esperar o retorno, com nome do arquivo gerado.

Para isso, informamos um código para a requisição

Intent irParaCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

irParaCamera.putExtra(MediaStore.EXTRA_OUTPUT, localFoto);

(17)

Hora de chamar a câmera (continuação)

O retorno do méto do startActivityForResult() vem no callback method onActivityResult()

O requestCode == FAZER_FOTO

Já o resultCode pode ser:

– RESULT_OK: ocorreu tudo bem. :-)

– RESULT_CANCELED: em caso de problemas ou cancelamento :-(

@Override

protected void onActivityResult(

int requestCode, int resultCode, Intent data) { … }

(18)

Exercício 03: Mudanças no Formulário

Na classe FormularioActivity, inclua novos atributos para

lidar com a câmera:

(19)

Exercício 03: Mudanças no Formulário

Na classe FormularioActivity, inclua novos atributos para

lidar com a câmera:

(20)

Exercício 04: Click da Imagem

No método FormularioActivity.onCreate(), implemente o

click da foto:

(21)

Exercício 04: Click da Imagem

No método FormularioActivity.onCreate(), implemente o click da foto:

Controle do click

da Foto do Aluno

(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

(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

(24)

Exercício 04: Click da Imagem

No método FormularioActivity.onCreate(), implemente o

click da foto:

(25)

Exercício 04: Click da Imagem

No método FormularioActivity.onCreate(), implemente o

click da foto: Local em que a Foto

será armazenada

(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

(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

(28)

Exercício 04: Click da Imagem

No método FormularioActivity.onCreate(), implemente o click da foto:

Chamando a

Câmera

(29)

Exercício 04: Click da Imagem

No método FormularioActivity.onCreate(), implemente o click da foto:

Chamando a Câmera Parâmetro: local de

armazenamento

(30)

Exercício 04: Click da Imagem

No método FormularioActivity.onCreate(), implemente o click da foto:

Chamando a Câmera Parâmetro: local de

armazenamento Inicia a Activity da Câmera.

A resposta é lançada

no método de Callback

(31)

Exercício 04: Click da Imagem

No método FormularioActivity.onCreate(), implemente o click da foto:

Chamando a Câmera Parâmetro: local de

armazenamento Inicia a Activity da Câmera.

A resposta é lançada no método de Callback

onActivityResult()

(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:

(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

(34)

Teste das atualizações

Click na

ImageView

(35)

Teste das atualizações

Capture a

imagem

(36)

Teste das atualizações

Salve a

imagem

(37)

Teste das atualizações

Imagem

Atualizada

(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

(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

(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

(41)

Capítulo 07: Câmera e Arquivos

Referências

Documentos relacionados

* O licenciado em matemática, no caso de não possuir o título de Doutor ou ter obtido o título a menos de dois anos, deverá apresentar comprovada competência em ensino,

padrão MPEG-4 AVC/H.264 High Profile para gravação com qualidade de imagem HD (alta definição) Portanto, não é permitido reproduzir imagens gravadas com qualidade HD

A base de dados foi criada com 2 câmera digitais de marcas diferentes (Samsung e Canon), onde cada uma delas capturou 140 imagens diferentes, em ambientes semelhantes

18:45 - 19:35 Introdução à Mecânica História da Educação Tópicos em Astronomia Introdução ao Cálculo Leitura e Produção textual no Contexto Acadêmico 19:35 -

As imagens produzidas pelos participantes em O Prisioneiro são, em diferentes medidas, dotadas de uma qualidade que evoca o recurso da “câmera subjetiva”. São imagens que

Eles contribuíram não apenas para a com- preensão de como o design pode despertar prazer nas pessoas, mas também no desenvolvimento de técnicas de trabalho para

Launched in July 2007, Braskem’s Green Polyethylene was the first to be made 100% from renewable sources. In 2010, this project became a reality and, with the inaugura- tion of

A gestão democrática na escola não está garantida somente com a eleição de diretores tendo em vista o jogo de forças envolvidas e a suplantação dos entraves cristalizados no