Mi aplicación es solo un ImageViewer modificado con las opciones de acercar y arrastrar. Con ese Imageviewer modificado hay un RelativeLayout (que quiero usar como AbsoluteLayout).Usar RelativeLayout dinámicamente y establecer márgenes en px, dp, inch, mm
Luego, se pueden agregar nuevos elementos al diseño para ubicarlos en ciertos puntos de la imagen. La posición (x, y) en píxeles de los elementos está en una base de datos, así que supongo que no hay otra forma de agregarlos mediante programación, y no con XML.
Luego, la posición de esos elementos se actualiza cada vez que se realiza una acción de arrastre o acercamiento.
¡El problema es que de alguna manera los píxeles de la imagen no coinciden con los píxeles en el RelativeLayout! Por lo tanto, los elementos están "más o menos" situados pero no en el lugar correcto (cuanto más lejos esté de (0,0), mayor es el error).
cosas que he intentado ya:
probar diferentes conversiones porque tal vez el problema está relacionado con la diferencia de densidades entre el mapa de bits y el diseño:
Resources r = getResources(); float x = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 100, r.getDisplayMetrics());
intenta utilizar diferentes métodos en el diseño para establecer los márgenes:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.leftMargin = (int) newPosition.x; params.topMargin = (int) newPosition.y; element.setLayoutParams(params);
También quería utilizar las opciones disponibles para el RelativeLayout en XML, pero realmente no puedo encontrar mediante programación pero puedo encontrar la manera de especificar la dimensión, quiero decir:
android:layout_marginLeft ="50px" // or "50mm", or dp, or inches...
Hola Rosalie, el problema con este método es que solo quiero establecer el margen izquierdo y el margen superior, no los cuatro márgenes. –
ok ... entonces puede pasar algunos valores enteros a la izquierda y arriba y para otros puede dar cero. Entonces se resolverá, supongo. – Lavanya