Prendre une photo sur application android [Fermé]

Signaler
Messages postés
5
Date d'inscription
vendredi 24 mars 2017
Statut
Membre
Dernière intervention
2 mai 2017
-
Messages postés
5
Date d'inscription
vendredi 24 mars 2017
Statut
Membre
Dernière intervention
2 mai 2017
-
Bonjour,
je viens de débuter ma première application professionnelle sur android. Cette application consiste à prendre une photo directement et l'envoyer sur un serveur distant
j'ai fait ce code là mais lorsque j'ai exécute mon application il bloque je ne réussi pas de connaitre où le problème s'il vous plait j'a besoin de votre aide
package com.example.java.projet;

import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Toast;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import static android.provider.MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE;

public class MainActivity extends AppCompatActivity {
    private static final int CAMERA_IMAGE_REQUEST = 0;
    ImageButton b;
    ImageView img;
    Uri fileUri;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        img = (ImageView) findViewById(R.id.imageView2);
        b = (ImageButton) findViewById(R.id.imageButton);
        b.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
               fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);

                // start the image capture Intent
                startActivityForResult(intent, CAMERA_IMAGE_REQUEST);
                }

        });
    }
    private static File getOutputMediaFile(int type) {

        File mediaStorageDir = new File(
                Environment.getExternalStorageDirectory()+File.separator+".QCT");
        // Create the storage directory if it does not exist
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {

                return null;
            }
        }

        // Create a media file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
                Locale.getDefault()).format(new Date());
        String imageName="picture_"+ timeStamp + ".jpg";
        File mediaFile;
        if (type == MEDIA_TYPE_IMAGE) {
            mediaFile = new File(mediaStorageDir.getPath() + File.separator
                    + imageName);

        } else {
            return null;
        }

        return mediaFile;
    }
    public Uri getOutputMediaFileUri(int type) {
        return Uri.fromFile(getOutputMediaFile(type));
    }
    public String getStringImage(Bitmap bmp){
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.JPEG, 70, baos);
        byte[] imageBytes = baos.toByteArray();
        String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
        return encodedImage;
    }
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == CAMERA_IMAGE_REQUEST) {
            if (resultCode == RESULT_OK) {

                try {
                    //Getting the Bitmap from Gallery
                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), fileUri);
                    //Setting the Bitmap to ImageView
                    img.setImageBitmap(bitmap);
                } catch (IOException e) {
                    e.printStackTrace();
                    Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();
                }

            } else if (resultCode == RESULT_CANCELED) {

                // user cancelled Image capture
                Toast.makeText(getApplicationContext(),
                        "Vous avez annuler la capture", Toast.LENGTH_SHORT)
                        .show();

            } else {
                // failed to capture image
                Toast.makeText(getApplicationContext(),
                        "Désolé! echec de capture photo", Toast.LENGTH_SHORT)
                        .show();
            }

        }


    }


}

2 réponses

Messages postés
14850
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
13 novembre 2020
2 762
Hello,

lorsque j'ai exécute mon application il bloque
C'est à dire? Quel est le souci? Un crash? As-tu regardé les logs?
As-tu regardé ce guide? https://developer.android.com/training/camera/photobasics.html
Messages postés
5
Date d'inscription
vendredi 24 mars 2017
Statut
Membre
Dernière intervention
2 mai 2017

merci je vais voir cette tutoriel