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

Android Discussion :

Utilisation de getExposureCompensation


Sujet :

Android

  1. #1
    Futur Membre du Club  
    Profil pro
    ras
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ras

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Utilisation de getExposureCompensation
    Bonjour,

    Je réalise ma première application Android dont une des méthode doit me calculer la valeur d'explosition de l'appareil photo grâce au nouvel méthode getExposureCompensation() et getExposureCompensationStep().
    Seulement j'ai quelques problèmes, avec l'émulateur getExposureCompensation() retourne 0 et getExposureCompensationStep appelle le Catch. En lançant le programme sur mon portable les 2 valeur reste à 0. L'émulateur tournant sous 2.2 et mon HTC Hero sous 2.2.1

    Est-ce que quelqu'un qui a déjà utilisé ces 2 méthode pourrai m'éclairer sur mon problème

    Voila le 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
    TextView txtExpValue = ((TextView) this.findViewById(R.id.txtExpoValue));
    try {
    	if (camera == null){
    	camera = Camera.open();
    	}
     
    	Parameters param = camera.getParameters();
     
    	int ExpComp = param.getExposureCompensation();
    	float ExpCompStep = param.getExposureCompensationStep();
     
    	EV = (float) (ExpComp*ExpCompStep);
     
    	txtExpValue.setText(""+EV);
     
    } catch (Exception e) {
    	txtExpValue.setText("BugVersion");
    	e.printStackTrace();
    }
    Merci !!

  2. #2
    Futur Membre du Club  
    Profil pro
    ras
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ras

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Bon mon problème ne passionne pas les foules

    Avec cette Activity est-ce que vous avez aussi une erreur ?


    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
    48
    49
    public class EV extends Activity implements OnClickListener{
     
    	TextView txtExpValue;
    	Button btnExpValue;
    	LinearLayout layoutMain;
    	Camera camera;
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
     
    		super.onCreate(savedInstanceState);
     
    		txtExpValue = new TextView(this);
    		btnExpValue = new Button(this);
    		layoutMain = new LinearLayout(this);
     
    		txtExpValue.setText("EV");
    		btnExpValue.setText("Mesurer");
     
    		layoutMain.addView(txtExpValue);
    		layoutMain.addView(btnExpValue);
     
    		btnExpValue.setOnClickListener(this);
     
    		setContentView(layoutMain);
     
    	}
     
    	@Override
    	public void onClick(View arg0) {
    		try{
    		if (camera == null){
    			camera = Camera.open();
    		}
    		if (camera != null){
    			int ExpComp = camera.getParameters().getExposureCompensation();
    			float ExpCompStep = camera.getParameters().getExposureCompensationStep();
     
    			float EV = (float) (ExpComp*ExpCompStep);
     
    			txtExpValue.setText(""+EV);
    		}
    		} 
    		catch (Exception e) {
    			txtExpValue.setText("BugVersion");
    			e.printStackTrace();
    		}	
    	}
    }

  3. #3
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Salut,

    J'ai testé sur la 2.2

    Alors je trouve 0 également pour getExposureCompensation , et pour l'autre j'ai une erreur qui remonte (peut etre une erreur de ma part) .

    Par contre j'ai regardé le max et le min , ils sont tout les deux à zéro également.

    Après une recherche
    current exposure compensation index. The range is getMinExposureCompensation() to getMaxExposureCompensation(). 0 means exposure is not adjusted.

    Je te met le code source de la caméra
    http://hi-android.info/src/android/h...mera.java.html

    Il semblerait qu'il faut modifier la variable KEY_EXPOSURE_COMPENSATION qui correspond à cette chaîne dans le paramètres , elle n'est pas par défaut sur l'emulateur en tout cas .
    Mais je ne sais pas comment tu dois l'ajuster si c'est dans le code ou a partir de l'appareil .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  4. #4
    Futur Membre du Club  
    Profil pro
    ras
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ras

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Merci pour le code source !

    J'ai trouvé ça dedans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
         * Camera service settings.
         *
         * <p>To make camera parameters take effect, applications have to call
         * {@link Camera#setParameters(Camera.Parameters)}. For example, after
         * {@link Camera.Parameters#setWhiteBalance} is called, white balance is not
         * actually changed until {@link Camera#setParameters(Camera.Parameters)}
         * is called with the changed parameters object.
    Ceux qui voudrai dire si 'ai bien compris qu'il faut appeler Camera.setParameters(Camera.Parameters) Pour que les attributs de parameters soit remplie, dont le Explosure_compensation.

    Je test ça ce soir !

  5. #5
    Futur Membre du Club  
    Profil pro
    ras
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ras

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    ARf, avec :
    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
    camera.setParameters(camera.getParameters());
    Parameters param = camera.getParameters();
     
    int ExpComp = camera.getParameters().getExposureCompensation();
    float ExpCompStep = camera.getParameters().getExposureCompensationStep();
    float Min = camera.getParameters().getMinExposureCompensation();
    float Max = camera.getParameters().getMaxExposureCompensation();
    param.setExposureCompensation(6);
     
    camera.setParameters(param);
     
    ExpComp = camera.getParameters().getExposureCompensation();
    ExpCompStep = camera.getParameters().getExposureCompensationStep();
    Min = camera.getParameters().getMinExposureCompensation();
    Max = camera.getParameters().getMaxExposureCompensation();
    Toutes les variables reste à 0.

  6. #6
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Je ne pourrais pas t'aider plus , mais si je comprends bien le problème c'est que le paramètre doit être ajuster préalablement .

    Après tu peux toujours en debug regarder directement ce que tu as dans param. tu y verras une chaine avec tout les paramètres réglés .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  7. #7
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    public int getMaxExposureCompensation ()
    Since: API Level 8

    Gets the maximum exposure compensation index.
    Returns

    * maximum exposure compensation index (>=0). If both this method and getMinExposureCompensation() return 0, exposure compensation is not supported.
    donc si tous tes appels retournent 0, c'est que cette fonctionnalité n'est pas supportée par ton téléphone.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  8. #8
    Futur Membre du Club  
    Profil pro
    ras
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ras

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    c'est bien ce que je craignais, je suis pourtant passé cyanogen 2.2 qui supporte pour le cout cette fonction, mais le driver de la camera ne doit surement pas "setter" les paramètres d'exposition.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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