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 :

Dessiner sans passer par paint()


Sujet :

Android

  1. #1
    Invité
    Invité(e)
    Par défaut Dessiner sans passer par paint()
    Je cherche une méthode pour dessiner sur mon écran, sans passer par la méthode paint.
    Je veux pouvoir dessiner à n'importe quel moment, et que les changements soient durables (que ça reste affiché tant que mon écran est ouvert).

    Pour info, c'est un peu comme un VNC, sauf que je ne peux pas passer par VNC.

    Merci

  2. #2
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Salut,

    Ce que tu peux faire est de creer un objet (qui sera ta zone de dessin) et qui hérite de View et surcharger la méthode onDraw().
    Pense seulement à exécuter tes modifs dans le ThreadUI

  3. #3
    Invité
    Invité(e)
    Par défaut
    la méthode onDraw() prend en paramètre un Canvas, je pense que c'est ce qu'il me faut.

    Mais comment je fait pour l'utiliser concrètement ?
    C'est appelé automatiquement cette méthode, non ?

    Moi je cherche plutôt à dessiner au moment où JE veux, et pas attendre que l'interface soit rafraichie.

    Dans mon cas, je veux pouvoir : à la réception d'un paquet UDP, mettre à jour l'image dessinée.

  4. #4
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Il te suffit d'appeler invalidate() dans ta classe héritant de la view pour la forcer à se redessiner

  5. #5
    Invité
    Invité(e)
    Par défaut
    mouais ....
    ça veut dire qu'il faut que je stocke les modifications de mon image, dans le but de les ré-afficher ?
    Je pense qu'il y a un moyen beaucoup plus simple. (mais il m'échappe)

    En gros, ce que je veux faire, ce serait comme un logiciel de dessin !
    Si je lui dit "fait moi un trait noir de 10 de long", il le trace, tout en gardant les modifications précédentes.

  6. #6
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Tu peux aussi creer une nouvelle view a chaque fois.
    Par exemple, si tu veux dessiner un cercle en plein milieux par dessus, tu crée une view qui va dessiner un cercle et puis voila.
    En plus si tu veux supprimer un vieux trait qui traine en dessous sans changer le reste c'est possible !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Sauf que je veux plutôt afficher une image "normale", et non uniquement des formes.
    Un peu comme VNC quoi ... (sauf que je ne peux pas l'utiliser)

    En y réfléchissant, il faudrait que je puisse récupérer un Canvas associé à une View, et que je puisse dessiner sur ce Canvas, puis que ça mette à jour la View.

  8. #8
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    On appelle pas la methode onDraw(Canvas c); c'est une methode provenant de View : faut override cette methode.

    @overrite public void onDraw-Canvas c){

    // mon dessin

    }

  9. #9
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Citation Envoyé par jahbromo Voir le message
    On appelle pas la methode onDraw(Canvas c); c'est une methode provenant de View : faut override cette methode.
    Citation Envoyé par Viish Voir le message
    Ce que tu peux faire est de creer un objet (qui sera ta zone de dessin) et qui hérite de View et surcharger la méthode onDraw().

    Il te suffit d'appeler invalidate() dans ta classe héritant de la view pour la forcer à se redessiner.
    Déjà dit ...

Discussions similaires

  1. Réponses: 10
    Dernier message: 24/02/2004, 12h28
  2. Réponses: 4
    Dernier message: 05/02/2004, 18h18
  3. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13
  4. [Kylix] Débrider Kylix sans passer par le Net
    Par BXDSPORT dans le forum EDI
    Réponses: 1
    Dernier message: 23/03/2003, 10h52

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