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 :

Récupérer les coordonnées x,y d'une image


Sujet :

Android

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Récupérer les coordonnées x,y d'une image
    Salut à Tous !

    Etant actuellement en BTS IG, options DA, il me faut préparer 5 petites applications afin de les présenter pour le BTS.

    J'ai choisi de m'orienter vers le devellopement sur Android pour 2 d'entre elles.

    Dernierement, j'ai souhaité me lancer dans la développement d'un petit ping pong sur Android, afin d'assimiler les bases de programmation en Java.

    Jusque ici tout va bien, sauf lors de la récuperations des coordonnées de la balles (Pour pouvoir gérer les rebonds), et lors de l'affectation de nouvelles coordonées (Pour gérer le déplacement).

    Voici ce que j'ai fait pour la récuperation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
              ImageView imageBalle = (ImageView) findViewById(R.id.ImageBalle);
     
            imageBalle.getLocationInWindow(position);
     
            sposition = Integer.toString(position[0]);
     
            ((TextView)findViewById(R.id.TextViewTest)).setText(sposition);
    Position est un tableau de 2 int
    sPosition est un String
    Le TextViewTest est utilisé pour voir la position de l'image.

    Cet partie de code fonctionne, mais me renvoi 0, alors que l'image est au centre de mon layout.

    Je vois met également mon xml :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FFFFFF"
        android:gravity="center"
        >
    	<ImageView android:background="@drawable/break_battle_title" 
    			   android:layout_margin="10dp" 
    			   android:layout_height="wrap_content" 
    			   android:layout_width="wrap_content" 
    			   android:id="@+id/ImageMainTitle">
    			   </ImageView>
    	<Button  android:id="@+id/btnNewGame" 
    			 android:background="@drawable/btn_newgame" 
    			 android:layout_height="wrap_content" 
    			 android:layout_margin="10dp" 
    			 android:layout_width="wrap_content">
    			 </Button>
    	<Button  android:id="@+id/btnOptions" 
    			 android:background="@drawable/btn_options" 
    			 android:layout_height="wrap_content" 
    			 android:layout_margin="10dp" 
    			 android:layout_width="wrap_content">
    			 </Button>
    	<ImageView  android:id="@+id/ImageBalle" 
    			    android:background="@drawable/balle"
    			    android:layout_height="wrap_content" 
    			    android:layout_width="wrap_content" >
    			    </ImageView>
     
    	<TextView android:text="Pas de valeur" 
    			  android:id="@+id/TextViewTest" 
    			  android:layout_width="wrap_content" 
    	 		  android:layout_height="wrap_content">
    	 		  </TextView>
    </LinearLayout>
    Comme vous pouvez, le voir, il n'y a pas que l'image dans le layout, il y a également des boutons, ce petit programme étant exclusivement réalisé dans le but de réaliser des test.

    Mon TextView est initialisé avec la valeur "Pas de valeur" pour voir si, oui ou non, ma fonction getLocationInWindow me renvoi une valeur.

    Voilà donc mon problème, pour résumé, je recupère une valeur de 0 pour le x de mon image.

    Afin de recuperé le X et y d'une image, utilisez vous une autre fonction ?

    Afin d'affecter une nouvelle position a l'image, quelle fonction utilisez-vous ?


    Merci d'avance

  2. #2
    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,

    Tant que ton layout n'est pas affiché tu auras 0 comme valeur retournée , sachant qu'il s'affiche après le OnStart je crois ou onResume .

    Après tu peux essayer de passer par la fonction getLocationOnScreen

    http://stackoverflow.com/questions/2...cationinwindow

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        public void onStart(Bundle savedInstanceState) {
            super.onStart();
     
            ImageView imageBalle = (ImageView) findViewById(R.id.ImageBalle);
     
            imageBalle.getLocationInWindow(position);
     
            sposition = Integer.toString(position[0]);
     
            ((TextView)findViewById(R.id.TextViewTest)).setText(sposition);
        }
    Avec ça, il n'y à pas d'erreur, mais il ne parvient pas à modifié le texte du TextViewTest pour y introduire la valeur sposition, en gros le TextView indique la même valeur que dans le xml.

    Une idée ?

  4. #4
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je pense qu'une fois arriver au Start, pour pouvoir accéder a l'UI, il nous faut passer par le thread dédié a l'UI à l'aide d'un Handler.

    J'essaie comme ça et je vous tiens au courant.

  5. #5
    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
    [QUOTE=Kussmaul;5692007]
    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
     
    TextView positionTextView;
     
    public void onStart(Bundle savedInstanceState) {
            super.onStart();
     
            ImageView imageBalle = (ImageView) findViewById(R.id.ImageBalle);
     
           // imageBalle.getLocationInWindow(position);
     
             imageView.getLocationOnScreen(position)  
            sposition = Integer.toString(position[0]);  
          positionTextView= (TexView) findViewById(R.id.TextViewTest));
    positionTextView.setText(String.valueof(position[0]);
        }
    L'idée est que la methode onStart est appelé après onCreate(Bundle bundle). Alors que c'est dans onCreate que tout ce passe.

    Donc ton operation est faite lorsque la vue est deja crée.
    Donc tu dois plutot voir comment le mettre dans onCreate.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/03/2012, 13h59
  2. Récupérer les coordonnées de points d'une surface avec la souris
    Par ijnuhbygv dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 06/08/2011, 01h57
  3. Récupérer les coordonnées (haut gauche) d'une cellule ou d'un div
    Par pcayrol dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/06/2007, 14h49
  4. [WD10]Récupérer les coordonnées X,Y d'une ligne de table
    Par Louis Griffont dans le forum WinDev
    Réponses: 10
    Dernier message: 27/03/2007, 08h42
  5. Comment récupérer les coordonnées d’un clique sur une image ?
    Par da_sys dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2006, 12h34

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