2012-04-20 17 views
7

Tengo que agregar una superposición (ImageView) para que se mueva un poco a la izquierda del límite izquierdo del diseño que lo contiene.Overlay de Android fuera/entre los límites del diseño

enter image description here

¿Cuál es la mejor manera de hacer esto?

intentado algo simple, como poner el ImageView dentro del diseño y el uso de margen negativo

android:layout_marginLeft="-20dip" 

Esto hizo esto:

enter image description here

(Corrección: texto de la imagen no debe ser 20dip 20px)

AbsoluteLayout está en desuso. ¿Hay algo como z-order? ¿O qué hago?

Gracias de antemano.

Editar: Intenté usar el diseño relativo en su lugar. Mismo efecto. Aquí está el código XML reducida al mínimo:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:clipChildren="false" 
android:paddingLeft="50dip" 
> 

<ImageView 
    android:id="@+id/myId" 
    android:layout_width="60dip" 
    android:layout_height="60dip" 
    android:layout_marginLeft="-30dip" 
    android:clipChildren="false" 
    android:src="@drawable/pic" /> 

</RelativeLayout> 

Resultado enter image description here

también sucede cuando la disposición que contiene tiene una imagen de fondo más pequeña que la pantalla en lugar del relleno.

Respuesta

13

Usando RelativeLayout en lugar de LinearLayout (para permitir la superposición) y añadiendo esto al RelativeLayout arreglaron:

android:clipToPadding="false" 
0

set "android: clipChildren = false" en xml

+1

NO ayuda. Lo puse en el diseño que contiene y la vista de la imagen y no cambió nada. – Ixx

0

Utilice un transparente (android: background = "# 00000000") imagen vista a la izquierda del diseño lineal con ancho = 30dp. Y haga que myId se alinee a la izquierda en caso de disposición relativa. Si está utilizando el diseño lineal, haga la orientación como horizontal y deje que la vista de la imagen transparente sea la primera entrada en él.

1

En lugar de

androide: layout_marginLeft = "- 30dip"

tratan con

androide: paddingLeft = "- 30DP"

Cuestiones relacionadas