Estoy tratando de implementar un ImageView con podría contener imágenes horizontales o verticales. Esas imágenes deben ajustarse al ancho de la vista de la imagen (si es horizontal) o la altura (si es vertical) pero en cualquier caso deben estar alineadas a la parte superior de la vista sin margen o relleno.Android ImageView ScaleType * FIT_TOP *
Lo que me gustaría lograr es algo así como android:scaleType="fitStart"
pero centrado en el caso de imágenes de retrato o alineado a la parte superior en el caso de imágenes de paisaje.
Agregado:
Ahora estoy usando un código tan fea, que parece funcionar, pero no estoy seguro que es la mejor solución:
<com.custom.layout.MyImageView
android:id="@+id/detail_view_image"
android:src="@drawable/logo"
android:background="#fff"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:cropToPadding="false"
android:adjustViewBounds="false"
/>
y luego en mi clase, que se extiende ImageView i hacer:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int imgWidth = getDrawable().getIntrinsicWidth();
int imgHeight = getDrawable().getIntrinsicHeight();
if(imgWidth>imgHeight)
setScaleType(ScaleType.FIT_START);
else
setScaleType(ScaleType.FIT_CENTER);
int width = measureWidth(widthMeasureSpec);
int height = measureHeight(heightMeasureSpec);
setMeasuredDimension(width, height);
}
Estoy buscando hacer algo similar, ¿alguna vez has encontrado una solución para esto? –
sin suerte hasta ahora, terminé usando el código que publiqué arriba ... – 0m4r
ok, gracias por el código! –