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 :

Capture d'écran par programmation


Sujet :

Android

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations forums :
    Inscription : Juin 2012
    Messages : 168
    Points : 397
    Points
    397
    Par défaut Capture d'écran par programmation
    Bonjour,

    Je souhaite faire une capture d'écran d'un graphique pour ensuite l'imprimer.

    voici ma méthode de capture :

    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
     
    public static Boolean BitmapExport()
    {
    	Boolean verif = false;
     
    try {	
    	Bitmap screenshot;
    	mainView.setDrawingCacheEnabled(true);
     
    	mainView.layout(0, 0, 1280, 600);
     
    	screenshot = mainView.toBitmap();
     
    	mainView.setDrawingCacheEnabled(false);
     
    	int width = screenshot.getWidth();
    	int height = screenshot.getHeight();
     
    	Toast.makeText(getContexteApplication(),"width = " + width + " height = " + height ,Toast.LENGTH_SHORT).show();
     
    	String filename = "/mtn/sdcard/test.png";
     
    	FileOutputStream out = new FileOutputStream(filename);
     
    	verif = screenshot.compress(Bitmap.CompressFormat.PNG,80,out);
     
    } catch(FileNotFoundException fnfe) { 
    	System.out.println(fnfe.getMessage());
    } 
     
    	return verif;
    }
    Bon voila le problème, c'est que premièrement je ne sais pas si la fonction "toBimap()" fonctionne, c'est une fonction de la librairie "achartengine" qui permet de retourner un Bitmap de la vue en cours.

    remarque : je suppose que cette fonction est ok car les valeur "width" et "height" corresponde a mon layout prédéfini (1280 , 600).

    Ensuite la fonction screenshot.compress (...) me retourne faux à chaque fois.

    Je n’ai pas d'autres idées sur le problème, merci de votre aide !

    NahMean

  2. #2
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    oui il y a moyen de faire une rotation de bitmap dans le sdk officiel, il faut rechercher dans la doc...
    Si la réponse vous a aidé, pensez à cliquer sur +1

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 117
    Points : 219
    Points
    219
    Par défaut
    Salut,
    A priori le compress si tu veut du PNG en sortie il faut mettre 0 pour le deuxieme argument.
    Y'a t'il eventuellement des informations sur pourquoi la compression a foiré dans le logcat?

    Mon petit blog sans prétention : http://blog.octera.info/

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    verif = screenshot.compress(Bitmap.CompressFormat.PNG,80,out);

    quality (80): Hint to the compressor, 0-100. 0 meaning compress for small size, 100 meaning compress for max quality.
    Some formats, like PNG which is lossless, will ignore the quality setting

    ?
    Si la réponse vous a aidé, pensez à cliquer sur +1

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations forums :
    Inscription : Juin 2012
    Messages : 168
    Points : 397
    Points
    397
    Par défaut
    Bon, apparemment sa fonctionne mieux si je retire la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mainView.setDrawingCacheEnabled(false);
    Autrement mon Bitmap passe en mode "Recyclé", va savoir pourquoi...

    bon du coup un petit appelle avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName());
    Et mon bitmap est bien dans mon répertoire !

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

Discussions similaires

  1. Comment capturer par programmation, une image de la carte ?
    Par saxrub dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 12/06/2014, 11h23
  2. [XL-2007] Masquer barre de défilement gauche droite en bas d'écran par programmation ?
    Par pelerin98 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/04/2014, 13h22
  3. Capture d'écran par VB.net
    Par Jean-Marie Grave dans le forum VB.NET
    Réponses: 3
    Dernier message: 26/12/2012, 18h22
  4. Réponses: 0
    Dernier message: 04/09/2012, 19h02
  5. Contrôler votre écran LCD par programmation
    Par khayyam90 dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2010, 23h35

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