Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 17/09/15, 09:42:14
Avatar de danipro1993
danipro1993 danipro1993 no está en línea
Usuario poco activo
Mensajes: 11
 
Fecha de registro: sep 2015
Mensajes: 11
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
Adaptar ImageView a distintas resoluciones

Buenos días,

estoy teniendo problemas con el desarrollo de una aplicación, resulta que tengo una lista de opiniones, donde se ve la imagen de perfil de los usuarios que se descarga por una URL usando la librería Universal ImageLoader. Una vez descargada la re-dimensiono a 150 x 150 y la establezco en el siguiente ImageView:

<Componentes.RoundImageView
android:id="@+id/iconUsuario"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/usericon5"/>

En las pantallas con resolución 720px se ve perfectamente el problema es cuando ejecuto la aplicación en otro dispositivo con menor resolución, la imagen se ve bien pero muy grande.

¿Como puedo hacer que la imagen tenga las mismas proporciones tanto en una pantalla de 720 como en otra con menor resolución?

Saludos
Responder Con Cita


  #2  
Viejo 17/09/15, 09:47:13
Avatar de rafaxplayer
rafaxplayer rafaxplayer no está en línea
Miembro del foro
Mensajes: 224
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
utiliza dimensiones diferentes para cada resolución con el archivo dimes.xml en drawable, drawable-large,drawable-xlarge, etc..

Infórmate sobre eso.
Responder Con Cita
  #3  
Viejo 17/09/15, 10:04:12
Avatar de danipro1993
danipro1993 danipro1993 no está en línea
Usuario poco activo
Mensajes: 11
 
Fecha de registro: sep 2015
Mensajes: 11
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
Muchas gracias por responder, voy a informarme, cuando comentas "utiliza dimensiones diferentes" te refieres al width y al height verdad?

Saludos
Responder Con Cita
  #4  
Viejo 17/09/15, 15:04:03
Avatar de javichechu
javichechu javichechu no está en línea
Usuario poco activo
Mensajes: 6
 
Fecha de registro: sep 2015
Mensajes: 6
Modelo de smartphone: Galaxy S3 y Iphone6
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Echa un vistazo a la librería Picasso para Android. Entre otras utilidades tiene la redimensión de imágenes.
Responder Con Cita
  #5  
Viejo 18/09/15, 09:26:43
Avatar de danipro1993
danipro1993 danipro1993 no está en línea
Usuario poco activo
Mensajes: 11
 
Fecha de registro: sep 2015
Mensajes: 11
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
Muchas gracias por las respuestas ya he conseguido adaptarlo usando el archivo dimens.xml y adaptando la imagen que descarga por URL según los dp configurados en el dimen.xml

Javichechu me apunto la librería para echarle un vistazo.

Saludos y muchas gracias.
Responder Con Cita
  #6  
Viejo 19/09/15, 13:33:17
Avatar de Kete_
Kete_ Kete_ no está en línea
Miembro del foro
Mensajes: 317
Compra y venta: (1)
 
Fecha de registro: abr 2009
Mensajes: 317
Modelo de smartphone: Nexus 6P
Versión de ROM: 6.0
Tu operador: Pepephone
Mencionado: 6 comentarios
Tagged: 0 hilos
Hola @danipro1993, puedes poner un ejemplo de como lo hiciste? Estoy en el mismo caso que tu, y he encontrado como descargarlo y elegir el tamaño que le quieres poner en pixeles, pero no termino de ver como usar los valores con los dp establecidos en el fichero dimens.xml...

Gracias!
Responder Con Cita
  #7  
Viejo 22/10/15, 09:34:15
Avatar de danipro1993
danipro1993 danipro1993 no está en línea
Usuario poco activo
Mensajes: 11
 
Fecha de registro: sep 2015
Mensajes: 11
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
Hola @Kete_, perdona por tardar en responder, te comento como lo hize:

aparte de definir las distintas carpetas (xhdpi,hdpi,mpi...) he usado la libreria imageloader, esta librería tiene un método que es cuando termina de descargar la imágen, en este método se redimensiona la imágen usando la libreria thumbhailutils.

Aquí te dejo el código, con los dpi se obtiene la densidad de pantalla

ImageLoader imageLoader = ImageLoader.getInstance();
DisplayImageOptions options;
ImageLoadingListener imageListener;

options = new DisplayImageOptions.Builder()
.showImageOnFail(R.drawable.ami)
.showStubImage(R.drawable.ami)
.showImageForEmptyUri(R.drawable.ami).cacheInMemor y()
.cacheOnDisc()
.postProcessor(new BitmapProcessor() {
@override
public Bitmap process(Bitmap bitmap) {
Bitmap bmThumbnail = null;
DisplayMetrics metrics = activity.getResources().getDisplayMetrics();
float dpi = metrics.density;

if(dpi == 2 || dpi == 3 || dpi == 4)
{
bmThumbnail = ThumbnailUtils.extractThumbnail(bitmap, 200, 200);
}else if(dpi == 1.5){
bmThumbnail = ThumbnailUtils.extractThumbnail(bitmap, 112, 112);
}else if(dpi < 1.5){
bmThumbnail = ThumbnailUtils.extractThumbnail(bitmap, 50, 50);
}

return bmThumbnail;
}
}).build();

saludos, espero haberte ayudado.
Responder Con Cita
  #8  
Viejo 22/10/15, 09:47:28
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Es más simple, en vez de wrap_content establece los tamaños a 150dp, porque es el tamaño que siempre vas a querer independientemente de la resolución.

Luego en el constructor de tu clase RoundImageView (que supongo que hereda de ImageView) establece que su ScaleType sea CENTER_INSIDE.

Haciendo esto ya no hace falta que te preocupes por redimensionar tu imagen, lo hará el ImageView por ti.
Responder Con Cita
Gracias de parte de:
  #9  
Viejo 22/10/15, 10:22:44
Avatar de danipro1993
danipro1993 danipro1993 no está en línea
Usuario poco activo
Mensajes: 11
 
Fecha de registro: sep 2015
Mensajes: 11
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
Gracias Kriogen, lo pruebo haber que tal.

muchas gracias
Responder Con Cita
  #10  
Viejo 27/10/15, 15:21:23
Avatar de androizado
androizado androizado no está en línea
Miembro del foro
Mensajes: 191
 
Fecha de registro: dic 2012
Mensajes: 191
Modelo de smartphone: Nexus 5
Versión de ROM: 5.0.1 Lollipop
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
@kriogeN, yo uso la librería de Picasso, pero en algunas resoluciones hay imágenes que se me iban. Pero nunca he llegado a probar ese método.
Gracias por el consejo.

Última edición por androizado Día 27/10/15 a las 15:24:35
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 09:40:30 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007