╔══════════════════════════════════════════════╗ ^
║ ImageView ╔══════════════╗ ║ |
║ ║ ║ ║ |
║ ║ Actual image ║ ║ |
║ ║ ║ ║ |60px height of ImageView
║ ║ ║ ║ |
║ ║ ║ ║ |
║ ╚══════════════╝ ║ |
╚══════════════════════════════════════════════╝
<------------------------------------------------>
90px width of ImageView
Tengo una vista de imagen con un alto y ancho predeterminados, las imágenes se almacenan en db y quiero escalar la imagen de acuerdo con el ancho de altura de la vista de imagen. Como no quiero que dé valores predeterminados porque cada vez que cambio su altura y ancho también tengo que cambiarlo en el código.
Estoy tratando de obtener la altura y el ancho de ImageView, pero me devuelven 0 en ambos casos.
int height = ((ImageView) v.findViewById(R.id.img_ItemView)).getHeight();
esto me devuelve 0 incluso si tiene altura y ancho predeterminados
android:scaleType="centerInside"
?Respuestas:
Mi respuesta a esta pregunta podría ayudarte:
Luego puede agregar su trabajo de escalado de imágenes desde el método onPreDraw ().
fuente
Acabo de configurar esta propiedad y ahora el sistema operativo Android se encarga de todo.
Use esto en su layout.xml donde ha plantado su ImageView: D
fuente
Podría obtener el ancho y la altura de la imagen por su dibujo;
fuente
La razón por la cual las dimensiones de ImageView son 0 es porque cuando las consulta, la vista aún no ha realizado los pasos de diseño y medición. Solo le dijo a la vista cómo se "comportaría" en el diseño, pero aún no calculó dónde colocar cada vista.
¿Cómo decide el tamaño que se le dará a la vista de imagen? ¿No puede simplemente usar una de las opciones de escala implementadas de forma nativa?
fuente
Publicar en el hilo de la interfaz de usuario funciona para mí.
fuente
su archivo xml:
su archivo java:
fuente
Creo que puedes dejar que el sistema operativo Android se encargue de esto por ti. Establezca el tipo de escala en ImageView en
fitXY
y la imagen que muestra se ajustará al tamaño actual de la vista.fuente
La forma más simple es obtener el ancho y la altura de un ImageView en el método onWindowFocusChanged de la actividad
fuente
Si ha creado varias imágenes dinámicamente, pruebe esta:
// inicializa tu matriz de imágenes
// crea programáticamente y agrega a la vista padre
// Eso es. Feliz codificación.
fuente
mi amigo no está obteniendo la altura de la imagen almacenada en db. pero está obteniendo la altura de la vista. para obtener la altura de la imagen, debe crear un mapa de bits a partir de la imagen de db, y luego puede obtener la altura y el ancho de la vista de imagen
fuente