Ver Mensaje Individual
  #3  
Viejo 26/03/13, 20:45:03
Avatar de ephramdoyle
ephramdoyle ephramdoyle no está en línea
Miembro del foro
Mensajes: 61
 
Fecha de registro: abr 2010
Mensajes: 61
Modelo de smartphone: Samsung I5700
Mencionado: 0 comentarios
Tagged: 0 hilos
Muchas gracias por responder kriogeN.

1) He probado de quitar en ambos layouts el android:scaleType="fitXY" y reemplazarlo por android:adjustViewBounds="true".

En el caso de layout-hdpi (GS2) deja de verse bien a verse con espacios en los laterales.
En el caso del layout-xhdpi (GS3) sigue viéndose igual, con la separación..


2) He implementado la clase y reemplazado el ImageView de /layout-xhdpi/acceso.xml por:
<mi.proyecto.FullWidthImageView
android:id="@+id/iv_bg_login_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:adjustViewBounds="true"
android:src="@drawable/bg_login_top" />
Y ahora pasa a ocupar todo el ancho. Gracias!

Por curiosidad he probado de aplicar lo mismo en hdpi/acceso.xml (la vista que ya funcionaba bien sin hacer cosas extras) y entonces la imagen pasa a ser algo más alta y los botones quedan inferiores quedan pegados.
De todas formas no aplico este sistema a ese layout y solucionado.

Pero sigo teniendo una duda. Aplicando la clase que me has aconsejado he podido corregir la imagen superior. Pero el resto de objetos, en este caso los botones siguen quedando desproporcionados.

No se si es la solución pero he intentado crear una nueva clase basada en la personalizda de ImageView por Button:
public class FullWidthButtonView extends Button {

public FullWidthButtonView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
Drawable d = getBackground();

if (d != null) {
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = (int) Math.ceil((float) width
* (float) d.getIntrinsicHeight()
/ (float) d.getIntrinsicWidth());
setMeasuredDimension(width, height);
} else {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
}
Esto no peta pero el botón pasa a ocupar todo muy deforme...

¿Cómo tratas al resto de objetos?
Responder Con Cita