Obtenir la position de ImageView par rapport à l'écran par programme

Je souhaite obtenir la position de mon ImageView programmation. Par position, je veux dire la distance en pixel de la partie supérieure de l'écran à celle ImageView. J'ai essayé toutes les autres solutions publiées dans stackoverflow mais ça ne fonctionne pas pour moi. Mon niveau minimum API est 8.

Ce sont les codes que j'ai essayé:

  • Quelle est la différence entre List et ArrayList?
  • Eclipse Content Assist ne fonctionne pas avec Android
  • Comment utilisez-vous la parole en temps réel d'Android en texte?
  • Erreur avec Joda-Time dans Android: l'identifiant de zone de date "America / New_York" n'est pas reconnu
  • Est-il possible d'avoir des icônes sur les onglets de la barre d'action pour Android?
  • Est-il correct de s'appuyer sur une SQLiteConstraint et de laisser SQLite me vérifier? Y at-il une prise?
  •  ImageView image = (ImageView) findViewById(R.id.imageView1); 1) image.getTop(); 2) private int getRelativeTop(View myView) { if (myView.getParent() == myView.getRootView()) return myView.getTop(); else return myView.getTop() + getRelativeTop((View) myView.getParent()); } 3) image.getLocationOnScreen(int[] locaiton); 

  • Android ExpandableListActivity et SimpleCursorTreeAdapter?
  • Cordova / Phonegap Toutes les demandes de demandes d'Ajax externes 404
  • Appeler startActivity () de l'extérieur d'un contexte d'activité
  • Comment fonctionne la bibliothèque de support Android?
  • ProGuard ne fonctionne pas dans mon application
  • Puis-je exécuter un serveur HTTP sur une plate-forme mobile?
  • 2 Solutions collect form web for “Obtenir la position de ImageView par rapport à l'écran par programme”

    Vous devez attendre le rappel lorsque la mise en page a été placée avec des vues pour enfants. C'est l'auditeur que vous devez ajouter à votre vue racine afin de calculer les coordonnées de votre image. Sinon, il renverra 0.

     getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { public void onGlobalLayout() { getViewTreeObserver().removeGlobalOnLayoutListener(this); int[] locations = new int[2]; image.getLocationOnScreen(locations); int x = locations[0]; int y = locations[1]; } }); 

    Utilisez View.getLocationOnScreen() ou getLocationInWindow() MAIS SEULEMENT après la mise en page. getTop() , getLeft() , getBottom() et getRight() renvoient le poste par rapport à son parent.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.