Imagen androide en listview que piensa "fuera" de la caja

Quiero tener un ImageView que es parte de un elemento de línea de vista de lista, pero que aparece tanto dentro como fuera de la fila. ¿es posible? ¿si es así, cómo? Muchas gracias de antemano … alt text http://www.freeimagehosting.net/uploads/a7e703a33f.png

La respuesta es "no exactamente", al menos no explícitamente en la forma en que se quiere decir, pero debería ser capaz de hacer que su imagen aparezca fuera de la fila simplemente usando una imagen de fondo para los elementos de la lista que se parece al borde de la Lista se produce unos pocos píxeles de donde realmente lo hace. A continuación, puede alinear a la derecha el elemento que desea que aparezca sobrevolado, y agregar algunos relleno derecho / márgenes a los elementos que no lo hacen.

Tengo este trabajo ahora y no tuve que meterse con photoshop en absoluto. Lo hice todo usando xml de android.

La forma de hacerlo es usar un elemento <layer-list> y en lugar de usar sin usar el relleno, como esto:

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="6dip" android:right="6dip" android:left="6dip"> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:bottomRightRadius="2dip" android:bottomLeftRadius="2dip" android:topLeftRadius="6dip" android:topRightRadius="6dip" /> <solid android:color="@color/list_view_outline" /> </shape> </item> <item android:top="8dip" android:right="8dip" android:left="8dip"> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:bottomRightRadius="2dip" android:bottomLeftRadius="2dip" android:topLeftRadius="6dip" android:topRightRadius="6dip" /> <solid android:color="@android:color/white" /> <stroke android:width="1dip" android:color="#BDBDBD" /> </shape> </item> 

A continuación, sólo tiene que utilizar una disposición de fila estándar para la fila de la lista:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/feed_list_row_content"> <ImageView android:id="@+id/author_image" android:layout_width="44dip" android:layout_height="44dip" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:src="@drawable/no_photo" android:layout_marginLeft="10dip" android:layout_marginTop="10dip" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dip" android:layout_height="wrap_content" android:layout_toRightOf="@id/author_image" android:id="@+id/feed_message_content" android:layout_toLeftOf="@+id/action_button" /> <ImageView android:id="@id/action_button" android:src="@drawable/row_action" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginTop="20dip" /> 

A continuación, establezco el fondo en el método getView () del adaptador de lista personalizada como las filas superior e inferior se diferencian de las filas intermedias.

 if(position == 0) { holder.contentLayout.setBackgroundResource(R.drawable.top_row); } else if(position == posts.size() - 1) { holder.contentLayout.setBackgroundResource(R.drawable.bottom_row); } else { holder.contentLayout.setBackgroundResource(R.drawable.inner_row); } 

Deberías ser capaz de implementar esto usando el android:clipChildren="false" y android:clipToPadding="false" en la vista de padre inmediato, luego android:clipChildren="false" en todos los grupos de vistas de antepasados ​​y luego poner un margen negativo En la vista de imagen; Es decir, android:layout_marginLeft="-10dp" .

Me tomó un tiempo entender cómo funcionan estos, especialmente android:clipChildren="false" . Google dice "Define si un niño está limitado a dibujar dentro de sus límites o no.", El punto clave es que los 'límites' del niño no son los límites del grupo de vista padre, sino los límites de la vista como se define Por sus atributos de diseño, es por eso que lo necesita todo el camino hasta el árbol de antepasados.

  • Android - cómo comprimir o reducir una imagen?
  • ¿Cómo puedo mover y escalar una imagen como la herramienta de selección de imágenes de perfil de Facebook?
  • Android, cómo perezosos cargar imágenes de url y persistentemente caché en el widget de la galería?
  • Android: crear área de clic en la vista de imagen
  • ¿Cómo eliminar una imagen en miniatura mediante programación de galera después de eliminar una imagen?
  • Cómo cargar imágenes de la URL en el widget de la aplicación Android?
  • Android: Almacenamiento de imágenes en el directorio del proyecto (archivos)?
  • Obtener imagen ThumbNail en Android
  • Google Android recarga imágenes incorrectas
  • ¿Reutilizando la galería de imágenes predeterminada de Android?
  • Problema de imagen de recorte cuando se toma de la cámara
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.