vertical studio linearlayout funciona como codepath android android-view android-scroll

studio - scrollview eclipse android



¿Hacia dónde se desplaza Android View.scrollTo(x, y)? (2)

Desde getX() :

La posición visual x de esta vista, en píxeles. Esto es equivalente a la propiedad translationX más la propiedad izquierda actual.

Para getY() es desde arriba. Entonces (0,0) está arriba a la izquierda.

No sé si scrollTo() tiene en cuenta la propiedad translationX , porque es "reciente" y no he estado programando durante un tiempo, pero apuesto a que sí.

scrollTo(int x, int y) dice:

x la posición x para desplazarse hasta

y la posición y para desplazarse hasta

onScrollChanged(int l, int t, int oldl, int oldt) dice:

l Origen de desplazamiento horizontal actual.

t Origen de desplazamiento vertical actual.

Lo que me gustaría saber y no puedo encontrar en ninguna parte, ¿dónde está x, y? ¿Arriba a la izquierda? ¿Centrar? Probé algunas pruebas y no puedo resolverlo.


Después de una extensa investigación y pruebas, finalmente he entendido cómo funciona scrollTo () .

(0,0) son las coordenadas de la esquina superior izquierda del contenedor de View . Al desplazarse a cualquier punto (x,y) , la esquina superior izquierda de la View se ubicará en las coordenadas (x,y) .

Si la View muestra una imagen, Bitmap , más grande que la View sí, el desplazamiento a (0,0) colocará la View en el centro de la imagen. De esta manera, la esquina superior izquierda de la imagen se ubicará en (-dX/2, -dY/2) y la esquina inferior derecha en (mW - dX/2, mH - dY/2) . dX representa la diferencia entre los anchos de la imagen y la View . Y dY representa la diferencia entre las alturas de la imagen y la View .

Para ver la esquina inferior derecha y no scrollTo(mW - ivW - dX/2, mH - ivH - dY/2); (más abajo o más a la derecha), esta es la llamada correcta: scrollTo(mW - ivW - dX/2, mH - ivH - dY/2);

La imagen adjunta muestra la representación gráfica de la View y el posicionamiento de la imagen de mapa de bits.