1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Capturando imagem com android e enviando para servidor

Olá, estou criando uma aplicação e preciso tirar uma foto com o android e posteriormente enviar para um servidor, a parte do envio já imagino a forma como deve ser feito, mas, o código e a forma de se capturar essa imagem pelo meu app é que não sei, alguém tem um link de tutorial aí? obrigado

Tudo certo, já consigo abrir a camera e salvar, agora preciso deixar a imagem com qualidade se não, não adianta pra mim rsrs, ela perde muito a qualidade x(. Primeiro o código do meu botao que chama a camera e cria o diretório.

        btAbrir.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(intent, CODIGO_IMAGEM);                

                File criaDir = new File(diretorio);
                boolean b = criaDir.mkdir();
                if(b || criaDir.exists()){
                    Toast.makeText(getApplicationContext(), "Ok Criou ou já existe", Toast.LENGTH_LONG).show();
                }else{
                    Toast.makeText(getApplicationContext(), "Não Criou", Toast.LENGTH_LONG).show();
                }
            }
        });

Agora o código onActivityResult que finaliza a captura.

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == CODIGO_IMAGEM) {
            //Ok
            if (resultCode == RESULT_OK) {
                // Aqui pego a imagem
                Bitmap bitmap = (Bitmap) data.getExtras().get("data");
                // Seta ela no ImaView do Layout

                try {  
                    SimpleDateFormat formatoData = new SimpleDateFormat("dd-MM-yyy_hh-MM-ss");
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);

                    byte[] bytes = stream.toByteArray();;
                    String nomeArquivo = diretorio + "projeto_foto_" + formatoData.format(new Date()) + ".jpg";

                    FileOutputStream fos = new FileOutputStream(nomeArquivo);
                    fos.write(bytes);
                    fos.close();
                    Toast.makeText(getApplicationContext(), "Salvou foto", Toast.LENGTH_LONG).show();

                } catch (Exception e) {
                    e.printStackTrace();
                }

                //Aqui posso salvar a foto se quizer.
            } else if (resultCode == RESULT_CANCELED) {//Cancelou a foto
                Toast.makeText(this, "Cancelou", Toast.LENGTH_SHORT).show();
            } else { //Saiu da Intent
                Toast.makeText(this, "Saiu", Toast.LENGTH_SHORT).show();
            }

        }
    }

Notem que a qualidade já está 100 que é o máximo, e mesmo assim não consigo uma resolução legal. O que fazer?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags android ou faça a sua própria pergunta.