2010-07-19 9 views
1

J'ai une application qui utilise la caméra, en envoyant l'aperçu à SurfaceHolder. Tout fonctionne bien sur le HTC Desire que j'ai développé, mais quand je le lance sur un Samsung Galaxy S, l'image de l'aperçu est tourné de 90 degrés.Aperçu de la caméra sur Galaxy S

Le code tente de correspondre à la meilleure taille renvoyée par les paramètres.getSupportedPreviewSizes(), avec la largeur et la hauteur de la Surface (telles que passées dans SurfaceChanged comme largeur et hauteur).

(l'image est également pivotée sur la galaxie lorsqu'une image est extraite de l'application).

Est-ce que quelqu'un d'autre a eu des problèmes avec l'aperçu sur le Galaxy? Ou mieux encore contourné les problèmes?

Répondre

0

Oui, avait exactement la même chose, voir: Camera preview on Android - strange on Samsung Galaxy S

Afin d'avoir l'image finale dans la rotation à droite, ainsi que l'aperçu de la came, je fais une rotation manuelle sur l'image capturée comme celui-ci

.. 
    final Matrix matrix = new Matrix(); 
    matrix.postScale(scaleWidth, scaleHeight); 
    matrix.preRotate(degrees); 

    // recreate the new Bitmap 
    final Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, x, y, width, 
      height, matrix, true); 
.. 
+0

Merci pour cela, comment avez-vous testé si la rotation était nécessaire ou non? – Lyndon

+0

J'ai entièrement enlevé/n'ai pas utilisé le p.set ("orientation", "portrait"); p.set ("rotation", 90); paramètres, et donc dans tous les cas, faire pivoter l'image. De cette façon, il devrait fonctionner sur tous les appareils. Mais je ne suis pas sûr, je n'ai pas pu tester beaucoup ces derniers temps. Dans mon cas, j'ai eu des problèmes sur un Samsung Galaxy S qui ne supportait pas ces paramètres. Je ne sais pas comment vérifier en général, vous devriez avoir besoin d'une liste de modèles qui prennent en charge ces paramètres et ensuite vérifier le modèle de l'appareil - qui peut être lu via API. Mais je pense que la première approche pour éviter ces paramètres pourrait être plus sûre. –

+0

Je n'utilisais pas ces paramètres du tout, donc il sera certainement facile de les éviter. – Lyndon

Questions connexes