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?