Obtener la posición de ImageView relativa a la pantalla mediante programación
Quiero obtener la posición de mi ImageView
programación. Por posición, me refiero a la distancia en píxeles de la parte superior de la pantalla a que ImageView.
He intentado todas las otras soluciones publicadas en stackoverflow, pero no funciona para mí. Mi nivel mínimo de API es 8.
Estos son los códigos que he probado-
- Obtener el valor de color predeterminado de un "EditText" del tema
- ¿Por qué se corta la altura de la barra de herramientas de Android?
- Layout_above no funciona correctamente con layout_alignParentBottom
- Cómo establecer el tamaño mínimo y máximo de un ImageView en Android
- Uso de la versión 1.0.0-alpha7 de la biblioteca de restricciones, que es obsoleta
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);
- Cómo crear un diseño que se divide en diagonal y las dos mitades son clicables?
- ImageView no mantiene la altura máxima y el ancho
- Cómo crear Android ActionBar con vista personalizada y pestañas
- Cómo añadir una imagen de fondo a listview en Android?
- ¿Cuál es el contrario de android.R.attr.state_checked?
- Cómo puedo cambiar la alineación de las vistas secundarias de la barra de herramientas
- Android: establece un borde alrededor de un ImageView
- Carpeta de valores para dimen.xml para tamaño de pantalla pequeño
Es necesario esperar a la devolución de llamada cuando el diseño se ha colocado con vistas de niños. Éste es el oyente que usted necesita agregar a su opinión de la raíz para calcular las coordenadas para su imagen. De lo contrario, devolverá 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]; } });
Use View.getLocationOnScreen()
o getLocationInWindow()
PERO SÓLO después de que la vista haya sido el diseño. getTop()
, getLeft()
, getBottom()
y getRight()
devuelven la posición relativa a su padre.
- ¿Cómo puedo repetir una transición para siempre?
- Error de paquete de aplicación firmada de exportación de Android