2017-10-17 6 views
-1

J'essaye de construire une application de caméra sur Android en utilisant Xamarin. Ce que j'essaie de faire est lorsque l'utilisateur touche le bouton "take image", l'appareil photo bascule automatiquement la caméra arrière sur l'appareil photo avant et capture l'image, ce qui signifie que le bouton "prend l'image" fera 2 choses: caméra et capturer l'image en même temps. Je suis nouveau sur Xamarin et le développement de l'application Android. J'ai cherché de nombreux didacticiels pour construire l'application de caméra, mais ils semblent être simples et je ne vois aucune fonction de remplacement lorsque l'utilisateur a frappé le bouton "prendre l'image". Voici mon code dans l'activité principale (juste pour construire l'application simple de la caméra):Comment ajouter plus de travail pour 1 coup de "prendre l'image" bouton pour l'application de la caméra?

ImageView imageView; 

    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 

     // Set our view from the "main" layout resource 
     SetContentView(Resource.Layout.Main); 

     var btnCamera = FindViewById<Button>(Resource.Id.btnCamera); 
     imageView = FindViewById<ImageView>(Resource.Id.imageView); 

     btnCamera.Click += BtnCamera_Click; 

    } 

    protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data) 
    { 
     base.OnActivityResult(requestCode, resultCode, data); 
     Bitmap bitmap = (Bitmap)data.Extras.Get("data"); 
     imageView.SetImageBitmap(bitmap); 
    } 
    // When user tap on the button, open camra app 
    private void BtnCamera_Click(object sender, System.EventArgs e) 
    { 
     Intent intent = new Intent(MediaStore.ActionImageCapture); 
     StartActivityForResult(intent, 0); 
    } 

Toute idée serait utile, merci beaucoup.

Répondre

1

Intention intention = new Intent (MediaStore.ActionImageCapture);

Cette méthode utilise l'application de caméra du système, vous ne pouvez pas modifier la caméra avant/arrière ici en utilisant cette méthode.

Vous pouvez lire ce tutoriel: Display a stream from the camera, il montre comment utiliser Android.Hardware.Camera pour créer votre propre application appareil photo.

Pour ajouter un Button à la vue afin que les utilisateurs peuvent prendre des photos, vous pouvez créer votre affichage de l'aperçu de la caméra par exemple comme ceci:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <TextureView 
     android:id="@+id/textureView" 
     android:layout_height="match_parent" 
     android:layout_width="match_parent" /> 

    <Button 
     android:id="@+id/takephotoBtn" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:text="take photo" /> 
</RelativeLayout> 

Vous pouvez changer avant/arrière caméra de l'appareil photo par Android.Hardware.Camera.Open Method.

Veuillez vous référer à cette discussion sur SO: Android: Switch camera when button clicked . Le code pour Xamarin Android est probablement le même que celui de Java. Ce qui signifie que le bouton «Prendre l'image» fera 2 choses: changer de caméra et capturer l'image en même temps. En passant, je ne pense pas que ce soit une bonne idée, rend votre application filaire. Pourquoi voulez-vous faire cela?