Prendre une photo sur application android

Fermé
angela_gim Messages postés 5 Date d'inscription vendredi 24 mars 2017 Statut Membre Dernière intervention 2 mai 2017 - Modifié le 2 mai 2017 à 10:55
angela_gim Messages postés 5 Date d'inscription vendredi 24 mars 2017 Statut Membre Dernière intervention 2 mai 2017 - 2 mai 2017 à 21:37
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();
            }

        }


    }


}

A voir également:

2 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
2 mai 2017 à 10:56
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
0
angela_gim Messages postés 5 Date d'inscription vendredi 24 mars 2017 Statut Membre Dernière intervention 2 mai 2017
2 mai 2017 à 21:37
merci je vais voir cette tutoriel
0