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é:

  • Moteur mathématique ou LaTeX pour téléphones Droid
  • Logcat est souvent hors travail
  • Comment imiter le comportement de 3 phases de la feuille inférieure de Google Maps?
  • Comment télécharger plusieurs archives Android (une pour chaque saveur)
  • Comment diagnostiquer l'erreur "Erreur d'exécution d'aapt" dans Eclipse?
  • La couleur TabLayout de l'onglet sélectionné est soulignée
  •  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); 

  • Utilisation du contexte dans un fragment
  • API Android pour vérifier si l'appel est actif ou en attente
  • Android Butterknife - liaison dans le fragment
  • Quel format de vidéo sera joué sur tous les appareils Android?
  • Lorsque vous utilisez le CoordinatorLayout, mon ScrollView a une taille incorrecte
  • Journal d'alerte Android Background Issue API 11+
  • 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.