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 :

Photo en mode paysage (rotation de 90°)


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2014
    Messages : 66
    Points : 33
    Points
    33
    Par défaut Photo en mode paysage (rotation de 90°)
    Bonjour à tous,

    j'ai une difficulté avec une class de prise de photo dotée d'une surface view : la surface view et l'image résultante sont constamment en mode paysage.
    J'ai essayé de faire une rotation (setRotation(90))... mais rien n'y fait.. c'est toujours en mode paysage. Comment procéder?
    Merci!

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    		public class CameraActivity extends Activity implements Callback {
     
    			final static String DEBUG_TAG = "CameraActivity";
    			final static String TAG = "CameraActivity";
    			Camera camera;Context contxtt;
    			private int cameraId = 0;
    			Button photo;
    			Camera.Parameters parameters;
    			private SurfaceHolder sHolder;
     
    			    	contxtt=cc;
    			            camera = Camera.open();
    			            SurfaceView sv = sg;
    			            sHolder = sv.getHolder();
    			            sHolder.addCallback(this);
    			            sHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    			            try {
    			                ((Camera) camera).setPreviewDisplay(sHolder);
    			            } catch (IOException e) {
    			                // TODO Auto-generated catch block
    			                e.printStackTrace();
    			            }
    			            parameters = camera.getParameters();
     
    			           // parameters.setRotation(90);  
    			           // if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE)
    			           // {parameters.set("orientation","landscape");parameters.setRotation(90);}
     
    			            //if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT)
    			            //{parameters.set("orientation","portrait");parameters.setRotation(90);}
     
    			            camera.startPreview();
    			//            parameters.set("orientation","portrait");
    			            camera.setParameters(parameters);	//(90);
     
    			}
    			public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
    			    try {
    			        camera.setPreviewDisplay(holder);
    			    } catch (IOException e) {
    			        // TODO Auto-generated catch block
    			        e.printStackTrace();
    			    }
    			    // set any cam params you need...
    			    camera.startPreview();  
    			}
     
     
    			@Override
    			protected void onPause() {
    			    if (camera != null) {
    			        camera.release();
    			        camera = null;
    			    }
    			    super.onPause();
    			}
     
    			Camera.ShutterCallback shuttercallback = new Camera.ShutterCallback() {
     
    			    @Override
    			    public void onShutter() {
    			        // TODO Auto-generated method stub
    			        Log.d(TAG, "onShutter'd");
    			    }
    			};
     
    			Camera.PictureCallback rawpicture = new Camera.PictureCallback() {
     
    			    @Override
    			    public void onPictureTaken(byte[] arg0, Camera arg1) {
    			        // TODO Auto-generated method stub
    			        Log.d(TAG, "onPictureTaken - raw");
    			    }
     
    			};
     
    			Camera.PictureCallback jpegcallback = new Camera.PictureCallback() {
     
    			    @Override
    			    public void onPictureTaken(byte[] data, Camera arg1) {
    			        // TODO Auto-generated method stub
    			        File pictureFileDir = getDir();
     
     
    			        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss");
    			        String date = dateFormat.format(new Date());
    			       final String photoFile = "Picture_" + date + ".jpg";
     
    			        String filename = pictureFileDir.getPath() + File.separator
    			                + photoFile;
     
    			        File pictureFile = new File(Environment.getExternalStorageDirectory(), photoFile);
    			        try {
    			            FileOutputStream fos = new FileOutputStream(pictureFile);
    			            fos.write(data);
    			            fos.close();  
    			            Toast.makeText(laclasse.this,
    			                    "New Image saved:" + photoFile, Toast.LENGTH_LONG)
    			                    .show();
    			        } catch (Exception error) {
    			            Log.d(CameraActivity.DEBUG_TAG, "File" + filename
    			                    + "not saved: " + error.getMessage());
    			            Toast.makeText(laclasse.this,
    			                    "Image could not be saved.", Toast.LENGTH_LONG).show();
    			        }
    			         }  } // End else block 
     
     
     
     
    		;
     
    			@Override
    			public void surfaceCreated(SurfaceHolder holder) {
    			    // set any cam params you need...
    			    camera.startPreview();
    			}
     
    			@Override
    			public void surfaceDestroyed(SurfaceHolder holder) {
    			    // TODO Auto-generated method stub
    			    camera.stopPreview();
    			    camera.release();
     
    			}
     
    			private  File getDir() {
    			    File sdDir = Environment.getExternalStorageDirectory();
    			    return new File(sdDir, "CameraAPIDemo");
    			}
     
    			public void takePhoto() {  
     
    			    camera.takePicture(shuttercallback, rawpicture, jpegcallback);
    			}
     
    			 }

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    Tu peux le spécifier dans ton code xml pour ta CameraActivity avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    android:screenOrientation="portrait"
    Si çà marche pas, alors tu spécifie que tu gère toi-même l'orientation de l'écran pour cette activity en ajoutant toujours pour cette Activity ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:configChanges="orientation"
    Fait ainsi, tu pourras décommenter ton code sur le changement de changement de configuration.

    Si çà ne marche toujours pas, tu peux poster ton fichier manifest.xml pour observation, analyse et conclusion !

    __salut !
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2014
    Messages : 66
    Points : 33
    Points
    33
    Par défaut
    Je n'ai que la surfaceview pour code xml de ma camactivity. J'ai donc essayé dans la surfaceview la screenorientation (même essayé en landscape... on sait jamais) mais ça ne fonctionne pas.
    J'ai ajouté aussi l'instruction config.. dans la balise application du manifest et ceci même de manière indépendante mais rien n'y fait.

    Je crois que la vraie solution se trouve juste en java et pas en xml.

Discussions similaires

  1. Imprimer une page en mode paysage
    Par twizell dans le forum ASP
    Réponses: 2
    Dernier message: 13/09/2005, 22h01
  2. [REPORT 6] Impression en mode paysage
    Par anaon dans le forum Oracle
    Réponses: 2
    Dernier message: 31/08/2005, 01h01
  3. [CSS] Impression en mode paysage
    Par joquetino dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 25/08/2005, 11h54
  4. Mode paysage !!
    Par Shandler dans le forum MFC
    Réponses: 2
    Dernier message: 05/04/2005, 21h54
  5. imprimer fichier en mode paysage
    Par Le Veilleur dans le forum C++Builder
    Réponses: 13
    Dernier message: 10/02/2005, 21h38

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