9
votes

Ouvrir la caméra à l'aide de l'intention

Je veux utiliser intention pour ouvrir caméra dans Android .

J'ai utilisé le code suivant mais quand j'appuie sur la touche (dont l'action est onclick () La fonction se ferme sur elle-même. < / p> xxx

si quelqu'un peut m'aider.


0 commentaires

7 Réponses :


2
votes

Le paramètre transmis à une méthode "On-click" est de type Affichage code> non int code> comme vous le montre.

Selon Ce didacticiel Votre méthode OnClick doit être la suivante: P > xxx pré>

caméra_pic_request code> est défini comme (bien que je ne sois pas tout à fait sûr de savoir pourquoi vous auriez besoin de coder de manière statique cette valeur dans votre application): p> xxx pré>


p>

mise à jour h1>

caméra_pic_request code> est utilisé pour identifier de manière unique le résultat étant renvoyé sur OnAticityResult Code>. Plusieurs starttactivityForresult code> pourraient être exceptionnels à la fois. P>

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if (requestCode == CAMERA_PIC_REQUEST) { 
        if (resultCode == RESULT_OK) {
            tv.setText("Got picture!");
            imageData = (Bitmap) data.getExtras().get("data"); 
            ImageView image = (ImageView) findViewById(R.id.imageView1);
            image.setImageBitmap(imageData);
        } else if (resultCode == RESULT_CANCELED){
            tv.setText("Cancelled");
        }
    }  
} 


1 commentaires

@ Heatfanjohn-Pourriez-vous également dire comment afficher une image de taille complète non seulement le petit bitmap dans une vision d'image sans l'épargne



1
votes

Veuillez consulter ce code, cela fonctionne bien avec moi xxx pré>

appliquez également cette méthode pour lire l'image lorsque vous avez suivi l'image de la caméra. P>

      } 
    catch (Exception e) 
    {
        if(e.getMessage() != null)Log.e("Exception"  , e.getMessage());
        else Log.e("Exception"  , "Exception");
        e.printStackTrace();
    }

    super.onActivityResult(requestCode, resultCode, data);
  }


0 commentaires

10
votes
                // ..................
protected void onActivityResult(int requestCode, int resultCode,
        Intent imageReturnedIntent) {
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
    Uri selectedImageUri = null;
    String filePath = null;
    switch (requestCode) {
    case SELECT_FILE1:
        if (resultCode == Activity.RESULT_OK) {
            selectedImage = imageReturnedIntent.getData();

            if (requestCode == SELECT_FILE1) {
                selectedPath1 = getPath(selectedImage);
                // mimagepath.setText(selectedPath1);
                // Toast.makeText(Camera.this, "" + selectedPath1 + "",
                // 500).show();

                if (selectedPath1 != null) {

                    BitmapFactory.Options options = new BitmapFactory.Options();

                    options.inJustDecodeBounds = true;
                    // image path `String` where your image is located
                    BitmapFactory.decodeFile(selectedPath1, options);



                // Log.d("setpath ", "setpath " + selectedPath1);
                ;

            }
        }

        break;
    case PICK_Camera_IMAGE:
        if (resultCode == RESULT_OK) {

            try {
                in = new FileInputStream(destination);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inSampleSize = 4;
            imagePath = destination.getAbsolutePath();

            // Toast.makeText(Camera.this, "" + imagePath +
            // "",Toast.LENGTH_LONG).show();

        break;

    }

}

3 commentaires

@ Rishi-Que sont sélectionnésPath1 & SecioriImage ..... Aussi quelle est la méthode GET PATH (image sélectionnée) car il n'y a pas de méthode interne de ce type de GetePath ()


SELECTPATH1 = getPath (sélectionImage); cela obtenir le chemin de l'image


@Rishi Gautam - Quelles sont les utilisées de Pick_Camera_Image = 2?



5
votes

Essayez ce code

public static final int CAMERA_PIC_REQUEST = 1;//firstly define this 



Intent photo= new Intent("android.media.action.IMAGE_CAPTURE");
                    startActivityForResult(photo, CAMERA_PIC_REQUEST);


1 commentaires

Nice simple code pour commencer à travailler avec la caméra dans android .



1
votes

Je connais cette question ancienne et répondit, mais pour ceux qui demandent comment obtenir le fichier image? Heres la solution.

String ExternalStorageDirectoryPath = Environment.getExternalStorageDirectory().getAbsolutePath();
String targetPath = ExternalStorageDirectoryPath + "/DCIM/Camera";

File targetDirector = new File(targetPath);
File[] files = targetDirector.listFiles()

String ImagePath = files[ file.files-1 ].getAbsolutePath();

Bitmap bmp = BitmapFactory.decodeFile(pathName); 
ivImage.setImageBitmap( bmp );


0 commentaires

1
votes

Il est très facile de démarrer la caméra de votre application Android: Il suffit d'écrire deux lignes de code dans onclick strong> méthode xxx pré>

ajoutez un champ constant dans votre classe (vous pouvez utiliser n'importe quel nombre aléatoire au lieu de 7) P>

private int CAMERA_PIC_REQUEST = 7;


0 commentaires

0
votes

Après beaucoup de recherches, j'ai trouvé cette solution. Juste pour faire claire des choses, j'ai créé une application entière pour cette question qui permet d'ouvrir la caméra cliquant sur une photo et de définir l'image comme imagebitmap d'une vue d'écran. Le code posé dans cette question commence au deuxième bloc, c'est-à-dire la méthode SetView () ci-dessous la méthode Oncreate () suivante que nous avons la méthode OnAccityResult ()

Voici une démonstration de l'application. P>  démonstration p>

ci-dessous j'ai joint le fichier MainActivity.java p> xxx pré>

ici imageuri est une variable globale de sorte que Il peut être utilisé dans la méthode onactivityResult () p> xxx pré>

Il s'agit de la méthode OnAstiVIVIVITURE. Ici, j'ai utilisé imageuri, c'est-à-dire la variable globale de type URI qui a été initialisée dans l'Onclicklistener du bouton de la méthode SetView () ci-dessus. P>

    // Asking user for storage permission
    public void askPermission() {
        // Checking if the permissions are not granted.
        if (
                ContextCompat.checkSelfPermission(
                        this,
                        android.Manifest.permission.WRITE_EXTERNAL_STORAGE
                ) != PackageManager.PERMISSION_GRANTED ||
                        ContextCompat.checkSelfPermission(
                                this,
                                android.Manifest.permission.READ_EXTERNAL_STORAGE
                        ) != PackageManager.PERMISSION_GRANTED
        ) {
            // If not granted requesting Read and  Write storage
            ActivityCompat.requestPermissions(this, /*You can ask for multiple request by adding
            more permissions to the string*/new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
                            Manifest.permission.READ_EXTERNAL_STORAGE}, 60);
        } else {
            // If permissions are granted we proceed by setting an OnClickListener for the button
            // which helps the user pick the image
            setView();
        }
    }

    // This method is called after the permissions have been asked i.e. the dialog that says
    // allow or deny
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                           @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        // Now by default we assume that the permission has not been granted
        boolean allPermissionsGranted = false;
        // Now we check if the permission was granted
        if ( requestCode == 60 && grantResults.length > 0) {
            // If all the permissions are granted allPermissionsGranted is set to true else false
            allPermissionsGranted = grantResults[0] == PackageManager.PERMISSION_GRANTED
                    &&
                    grantResults[1] == PackageManager.PERMISSION_GRANTED;
        }
        // If permissions are granted we call the setView Method which prompts the user to pick
        // an Image either by the clicking it now or picking from the gallery
        if ( allPermissionsGranted ) {
            setView();
        }
    }
}


0 commentaires