Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Impedir que ImageView empuje las vistas fuera de la pantalla

Tengo un diseño lineal que contiene una vista de imagen y otro diseño lineal que es una barra inferior en la pantalla. Utilizo la barra inferior en otra parte de mi proyecto y no creo que sea el problema.

El problema es que la imagen toma toda la pantalla. La imagen en sí no, pero la vista sí. No puedo entender esto. Como se puede ver en mi xml, no estoy usando fill_parent para la vista de la imagen y he intentado cada scaleType posible para la imagen.

  • Android ImageView: Ajustar el ancho
  • Alpha-gradient en Android
  • Byte matriz de imagen en imageview
  • Cómo ampliar una vista de texto en android?
  • Android ImageView no coincide con_parent dentro de FrameLayout por debajo de GingerBread
  • Rotar imágenes en android. ¿Hay una mejor manera?
  • ¿Alguna sugerencia? También, si me ayuda a construir en Android API 8

    Editar: He cambiado el xml a continuación para que pueda utilizar exactamente lo que he escrito. (Esta es la imagen que uso en la vista de imagen: http://i.imgur.com/qN5aT.jpg )

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#FFFFFF" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="fitStart" android:src="@drawable/quote_sample_img" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="bottom" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="This is text" /> </LinearLayout> </LinearLayout> 

    Http://i.imgur.com/m3msH.png (Lo siento no es suficiente reputación para publicar la imagen real)

  • Utilizar la biblioteca DataBinding para establecer el recurso de color de fondo o null
  • El método getView () de ArrayAdapter no se recibe
  • Controles segmentados en la aplicación de Android
  • ¿Cómo dividir el texto en 2 textviews como si hubiera 1?
  • Cómo evitar que aparezca el teclado para EditText que no está habilitado
  • ¿Cuál es la diferencia entre los métodos invalidate () y postInvalidate () de Android?
  • 4 Solutions collect form web for “Impedir que ImageView empuje las vistas fuera de la pantalla”

    Las cosas parecen funcionar si android: layout_weight = "1.0" se agrega al ImageView.

    (No estoy seguro de qué está ocurriendo exactamente y en qué orden en el algoritmo de diseño no puedo explicar por qué).

     <?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" android:background="#FFFFFF" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0" android:scaleType="fitStart" android:src="@drawable/quote_sample_img" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="bottom" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="This is text" /> </LinearLayout> </LinearLayout> 

    Es el wrap_content en la imagen – el archivo de origen es probablemente demasiado alto.

    Utilícelo en ImageView para que el área de la imagen se restablezca al nuevo tamaño de la imagen después de la escala:

     android:adjustViewBounds="true" 

    También cambiaría la altura del ImageView para que llene la pantalla y obliga a su barra a estar siempre en la parte inferior:

     android:layout_height="0dip" // faster than match_parent for weight android:layout_weight="1.0" 

    Creo que el problema podría ser que la imagen que utilizó es más grande que la pantalla, por lo que ImageView tiene su altura establecida a la altura del espacio disponible para adaptarse mejor a la imagen, no dejando espacio para nada más.

    Además, si desea tener siempre la barra inferior visible, es mejor utilizar un RelativeLayout en su lugar así:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" style="@style/Main" android:orientation="vertical" > <LinearLayout android:id="@+id/bottom_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="bottom" android:layout_alignParentBottom="true" android:orientation="vertical" > <include layout="@layout/browse_bottom_bar" /> </LinearLayout> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@id/bottom_bar" android:src="@drawable/quote_sample_img" /> </RelativeLayout> 

    Tengo un problema muy similar, publicado en https://stackoverflow.com/questions/9765401/imageview-with-adjustviewbounds-seems-to-ignore-following-elements

    Parece que el ImageView no encoge después de escalar la imagen A MENOS que especifique adjustviewbounds = "true".

    Pero, como se puede ver en mi propia publicación, no es la respuesta completa: la vista de la imagen todavía puede empujar los elementos de abajo de la pantalla o interferir en su espacio si la imagen es demasiado grande, que estoy trabajando en tratar de arreglar.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.