El relleno no deseado alrededor de un ImageView
Necesito incluir un gráfico de encabezado en todas mis actividades / vistas. El archivo con el encabezado se llama header.xml:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#0000FF" android:padding="0dip"> <ImageView xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/header" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="0dip" android:layout_marginTop="0dip" android:layout_marginBottom="0dip" android:padding="0dip" android:paddingTop="0dip" android:paddingBottom="0dip" android:layout_gravity="fill" android:background="#00FF00" /> </FrameLayout>
Nota el android:background="#00FF00"
(verde), es sólo fines de visualización.
- Prácticas recomendadas para implementar un menú de opciones de varios niveles en Android?
- Establecer fuente de ImageView dinámicamente android
- ¿Lista de múltiples opciones con vista personalizada?
- Haciendo que un botón sea más fácil de hacer clic
- Cómo detectar la dirección de desplazamiento entre izquierda / derecha y arriba / abajo
Los incluyo en mis puntos de vista como este:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" style="@style/white_background"> <include layout="@layout/header" /> (...)
Así que, cuando realmente lo pruebo, el resultado se ve como la imagen de la izquierda, en lugar de lo que debería ser (derecha):
(1) esto – la parte naranja es la imagen / ImageView en cuestión
(2) la frontera verde no amada. Nota: normalmente, el área verde sería transparente – es sólo verde porque i establecer el background
.
Observe el borde verde alrededor de la imagen en la parte superior; Es parte del ImageView y no puedo entender por qué está ahí o cómo puedo deshacerme de él. Estableció todos los rellenos y márgenes a 0 (pero el resultado es el mismo cuando los omito). La imagen es un jpeg * 480x64px y lo puse en res / drawable (no en uno de los drawable-Xdpi
sin embargo).
(* Jpeg, porque parece que tropecé con el viejo problema de gamma png – al principio he trabajado alrededor del problema haciendo la frontera verde de la misma naranja que la imagen, y los colores no coinciden.)
Lo probé en mi deseo htc / 2.2 / Build 2.33.163.1 y en el emulador. También he descrito el problema a alguien en # android-dev; Ella podía reproducir el problema pero tampoco tenía explicación. El objetivo de construcción es 1.6.
Update @tehgoose: este código produce el mismo resultado top + bottom acolchado.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" style="@style/white_background"> <!-- <include layout="@layout/header" /> --> <ImageView android:src="@drawable/header" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#00FF00" android:layout_weight="0" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="8dip" android:layout_weight="1"> (... rest of the elements) </LinearLayout> </LinearLayout>
- No puedo averiguar cómo usar un android PreferenciaActividad
- Eliminar / quitar la imagen actual de ImageView?
- ¿Cómo obtener la entrada de texto en lienzo?
- ¿Cómo obtener los contactos del usuario de Gmail?
- ¿Interrumpo el cultivo de caracteres internacionales cuando configuro includeFontPadding a false?
- Comprobar la configuración del teléfono para la retroalimentación háptica
- Soporte de RTL: deshabilitarlo sólo para componentes de interfaz de usuario específicos
- Radio botones lado a lado alternativa en Android
¡finalmente!
<ImageView (...) android:adjustViewBounds="true" />
El atributo adjustViewbounds hizo el truco:
Defina esto como true si desea que ImageView ajuste sus límites para conservar la relación de aspecto de su dibujable.
Me topé con él aquí . ¡gracias por tu ayuda!
android:scaleType="fitXY"
Esto funciona para mi.
Tiene que ver con la relación de aspecto de la imagen. De forma predeterminada, el sistema mantiene la relación de aspecto original de la fuente de la imagen. Que en la mayoría de los casos no coincide exactamente con el diseño o las dimensiones especificadas en el diseño. Por lo tanto,
- Cambia el tamaño de la imagen para que se ajuste al diseño especificado o
- Use
android:scaleType
para ajustar la imagen. Por ejemplo, puede especificarandroid:scaleType="fitXY"
Puede ser que usted puede dar specific height to imageView say 50dp or 40dp
y adjust image to make green border
desaparecer el adjust image to make green border
.
Por ejemplo: android:layout_height="40dp"
android:layout_height="wrap_content"
Necesita cambiarlo a "fill_parent"
También puede que tenga que escalar su imagen por lo que será la razón correcta para llenar el framelayout está.
No entiendo por qué necesita el diseño del marco en absoluto. Sin ella, su imagen sólo llenar la pantalla de todos modos.
EDIT: sí, lo siento, el xml es la altura de la vista de la imagen.
Usted necesita proporcionar forma alrededor de imageview para dar una mirada mejor.
Aquí lo que he utilizado:
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <!--<gradient android:startColor="#FFFFFF" android:endColor="#969696" android:angle="270"> --> <gradient android:startColor="#FFFFFF" android:endColor="#FFFFFF" android:angle="270"> </gradient> <stroke android:width="2dp" android:color="@color/graycolor" /> <corners android:radius="2dp" /> <padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp" />
- Almacenamiento de IDs extraibles en una matriz XML
- OnSaveInstanceState () y onRestoreInstanceState ()