2012-04-20 24 views
6

Necesito cambiar un ImageView, que es un elemento directo de un LinearLayout, un poco a la izquierda.Establecer margen negativo en ImageView cambia ImageView pero no Imagen

Qué sucede: La vista está desplazada (puede ver que el "cuadro delimitador" está desplazado, con el administrador de diseño de Android) pero el dibujante se mantiene en el mismo lugar.

También el dibujo se corta en el lado derecho, si ajusto el margen lo suficientemente bajo.

enter image description here

¿Por qué es esto? ¿Algún consejo?

  • Aclaración: Tengo que cambiar la Imagen a la izquierda. Eso significa un poco fuera de los límites del diseño que lo contiene.

Respuesta

4

Parece que los elementos siempre se recortan cuando salen de los límites de los padres (también con clipChildren = false).

Una solución es crear un diseño de contenedor adicional para todo, además del elemento que se va a desplazar. Y luego cambie el diseño del contenedor en la dirección opuesta.

Por ejemplo, para cambiar -10dip:

<Original container ...> 
    <Item to be shifted/> 
    <New container with margin 10dip> 
     <Previous content of Original container ... /> 
    </New container with margin 10dip> 
</Original container> 
+0

Gracias por la respuesta, pero ¿podría darnos un ejemplo con códigos reales? No pude entender la idea. Gracias de antemano. – Natasha

+0

Hola. Todavía lo necesita? Lo siento, no hay tiempo ... solo coloque el elemento que desea "desplazar" y el resto (en un diseño que lo contenga) dentro de un diseño relativo o de marco, y en lugar de mover el elemento hacia la izquierda, cambie el "resto" a rigt ... – Ixx

+0

Gracias por el comentario. – Natasha

1

¿Por qué usa margen negativo? utilice un positivo un poco más en el lado opuesto de ImageView a la dirección en la que desea desplazar la imagen, es decir, si desea desplazar la imagen hacia la izquierda, use un margen más positivo hacia la derecha.

+0

Tengo que cambiar la imagen a la izquierda. Eso significa un poco fuera de los límites del diseño que lo contiene. – Ixx

+0

Intenta usar 'android: adjustViewBounds =" true "' en el xml para ajustar automáticamente los límites de la vista. – orchidrudra

+0

No ayudó ::::/ – Ixx

3

Si el recipiente tiene suficiente relleno puede configurar su clipToPadding a falsa y utilizar el margen negativo!

Cuestiones relacionadas