EspañolDeutschFrançaisItalianoPortuguêsРусскийΕλληνικά日本語中文(简体)हिन्दी; हिंदीالعربية
PF Preguntas - Foro

Cómo redimensionar proporcionalmente la imagen de un ImageView cuyo valor de anchura es “match_parent”

Programación Android  
 
Cómo redimensionar proporcionalmente la imagen de un ImageView cuyo valor de anchura es “match_parent”

Existe un problema, o bug, o simplemente lo han querido hacer así, en el objeto ImageView, en la programación en Android. Si asignas un ancho match_parent a dicho objeto, y una altura wrap_content, en el caso de que la imagen que vaya a colocarse como fuente tenga unas dimensiones superiores a las del ImageView, no parece haber problema alguno.

El inconveniente surge cuando la imagen que se asigna al objeto ImageView tiene unas dimensiones inferiores a dicho objeto. En este caso, la imagen aparece con las dimensiones originales, y no abarca el ImageView por completo.

En tal caso, por mucho que juegues con las distintas opciones y atributos del objeto ImageView, nunca se obtiene el resultado que se quiere. Puedes modificar la propiedad scaleType, adjustViewBounds, layout_height, layout_width, … y nada, no tendrás éxito.

 

Cómo hacer que una imagen de un ImageView se redimensione al tamaño del objeto por completo

 

Para conseguir el propósito de que la imagen del ImageView se redimensione al tamaño del objeto sin perder sus proporciones, la solución pasa por crear una nueva clase Java en nuestro proyecto que extienda a la clase ImageView y que corrija el problema que tenemos.

Para ello, en tu proyecto, crea una nueva clase. Nosotros la vamos a llamar ResizableImageView, y su código es el siguiente:

Una vez creada e implementada la clase ResizableImageView, lo que haremos ahora es modificar el XML del Layout de la vista donde se encuentre el ImageView sobre el que queremos hacer que se redimensione la imagen.

Supongamos que, previamente al cambio, el XML del ImageView a cambiar es el siguiente:

Pues simplemente tenemos que cambiar la clase de dicho objeto por la nueva clase creada, de la siguiente forma:

Con este clase y el cambio en el código XML, lograremos que la imagen contenida dentro del objeto ImageView se redimensione, manteniendo su proporcionalidad, incluso en los casos en los que la imagen tenga una dimensión menor que el contenedor.

 

Déjanos un comentario o entra al  Foro
Share on Facebook Tweet about this on Twitter Share on Google+ Pin on Pinterest Share on Reddit Share on VK Share on StumbleUpon Share on Tumblr Share on LinkedIn Email this to someone Print this page