IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Prendre une photo et l'afficher dans une ImageView


Sujet :

Composants graphiques Android

  1. #1
    Membre régulier Avatar de bsidy1
    Profil pro
    INFORMATICIEN
    Inscrit en
    Décembre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : INFORMATICIEN

    Informations forums :
    Inscription : Décembre 2006
    Messages : 127
    Points : 72
    Points
    72
    Par défaut Prendre une photo et l'afficher dans une ImageView
    Bonjour à tous

    je suis un super débutant en Android
    je voudrai votre aide pour prendre photo en cliquant sur l'image view et recuperer l'image dans l'imageView tout en tenant compte de l'orientation (mode portrait lors de l'affichage)
    ci dessous mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
     
     
     
    img = (ImageView) findViewById(R.id.imageView1);
     
                 ImageView b = (ImageView) findViewById(R.id.imageView1);
     
     
     
                 b.setOnClickListener(new OnClickListener() {
     
                        @Override
     
                        public void onClick(View v) {
     
                               Toast.makeText(MainActivity.this,
     
                                            "Activation de l'appareil photo", Toast.LENGTH_SHORT)
     
                                            .show();
     
                               Intent intent = new Intent(
     
                                            android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
     
                               startActivityForResult(intent, 0);
     
     
     
                        }
     
                 });
     
     
     
                 @Override
     
                  public  void onActivityResult(int requestCode, int resultCode, Intent data) {
     
                  // TODO Auto-generated method stub
     
                  Bitmap bit= (Bitmap) data.getExtras().get("data");
     
                  img.setImageBitmap(bit);
     
                  };
    ci dessous l'erreur que j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Multiple markers at this line
     
                    - void is an invalid type for the variable
     
                     onActivityResult
     
                    - Syntax error on token ",", ; expected
     
                    - Syntax error on token ",", ; expected
     
                    - Syntax error on token ")", ; expected
     
                    - Syntax error on token "(", ; expected
    Je sais compter sur vous et merci d'avance
    Ecouter, observer avant de parler c'est être responsable

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Le mot-clé public s'écrit en minuscule

  3. #3
    Membre régulier Avatar de bsidy1
    Profil pro
    INFORMATICIEN
    Inscrit en
    Décembre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : INFORMATICIEN

    Informations forums :
    Inscription : Décembre 2006
    Messages : 127
    Points : 72
    Points
    72
    Par défaut
    apres correction du majuscule au minuscule je n'ai plus d'erreur mais des worning :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    The method onActivityResult(int, int, Intent) from the type new View.OnClickListener(){} is never used locally
    apres execution au retour je n'apperçois pas l'image sur l'imageview
    Ecouter, observer avant de parler c'est être responsable

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    En effet, la méthode onActivityResult provient de la classe Activity. Elle doit donc être imbriquée à la racine de la classe. Or là, elle est au même niveau que toutes tes autres déclarations (qui doivent être dans une méthode).

  5. #5
    Membre régulier Avatar de bsidy1
    Profil pro
    INFORMATICIEN
    Inscrit en
    Décembre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : INFORMATICIEN

    Informations forums :
    Inscription : Décembre 2006
    Messages : 127
    Points : 72
    Points
    72
    Par défaut
    Simon MARQUIS
    peux tu me donner un coup de main please
    Ecouter, observer avant de parler c'est être responsable

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Voici la forme générale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class MainActivity extends Activity {
     
      public void onCreate(...){
     
      }
     
      public void onActivityResult(...){
     
      }
     
    }

  7. #7
    Membre régulier Avatar de bsidy1
    Profil pro
    INFORMATICIEN
    Inscrit en
    Décembre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : INFORMATICIEN

    Informations forums :
    Inscription : Décembre 2006
    Messages : 127
    Points : 72
    Points
    72
    Par défaut
    Merci infiniment mon frere
    une derniere question comment faire pour que l'image recuperer puisse prendre la dimension de l'image view
    Une fois merci encore
    ça marche nickel
    Ecouter, observer avant de parler c'est être responsable

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Il faut pour cela utiliser le paramètre scaleType, soit directement depuis le XML soit dans le code java et lui donner une de ces valeurs, suivant le rendu que tu veux : http://developer.android.com/referen...ScaleType.html

  9. #9
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    1. Récupérer la dimension de l'ImageView (viewWidth, viewHeight)

    2. Récupérer la dimension de l'image (fichier): une bitmap de 4000x3000 pixels ne tient pas forcément en mémoire (et ne sert à rien pour une ImageView). En utilise inJustDecodeBounds à "true" des options. (imageWidth, imageHeight)

    3. Calculer le nombre de "subsampling" à faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int subsampling=1;
    if (imageWidth > viewWidth || imageHeight > viewHeight) {
        int subx = imageWith / viewWidth;
        int suby = imageHeight / viewHeight;
        subsampling = (subx > suby) ? subx : suby;
    }
    if (subsampling < 1) subsampling=1;
    4. Utiliser cette valeur dans inSampleSize des options pour lire la bitmap finale.

    5. Coller la bitmap dans l'ImageView (setImageBitmap), et s'assurer qu'on utilise le bon scaleType.

    Voilà.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/03/2015, 13h37
  2. Réponses: 21
    Dernier message: 26/02/2015, 21h20
  3. Générer une image et l'afficher dans une page web
    Par Rodrigue dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/10/2007, 19h32
  4. Réponses: 13
    Dernier message: 27/10/2006, 17h24
  5. n'affiche pas une image arriere plan definis dans une CSS
    Par mikebranque dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 30/06/2006, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo