2011-08-30 11 views
6

Tengo un ImageView en android. Quiero mover la imagen parcialmente dentro de la pantalla de modo que solo una parte de la imagen esté visible. Si configuro margen o relleno en xml, la imagen se encoge. Utilicé un traductor Animation en el método onCreate. Pero veo que la imagen se mueve la primera vez que se presenta la vista. Quiero que la imagen sea parcialmente visible sin que el cambio sea visible. ¿Hay alguna forma de hacer esto?mover una imagen parcialmente fuera de la pantalla en Android

+0

Si es posible, ¿puede publicar su código de vista de imagen? – EpicOfChaos

+0

¿a qué tiene configurado el alto y el ancho? Si los configura en un valor mayor que el tamaño de su pantalla, podrá usar márgenes o relleno para moverlo donde quiera. Su diseño tendrá que ser más grande que el tamaño de la pantalla también. – FoamyGuy

+0

No hay código de imageView. Estoy poniendo la imagen en el archivo xml. – user866821

Respuesta

2

Qué tal esto.

En onCreate de su actividad:

ImageView yourImage = (ImageView)findViewById(R.id.your_image_control_id); 
yourImage.setX(1000); 
yourImage.setY(1000); 

De esta manera, se posiciona correctamente en el inicio. O puede usar un AbsoluteLayout y establecer las coordenadas xey de la imagen de esa manera. Asegúrate de no estar usando fill_parent para la altura o el ancho.

+3

mi API es 2.1 y superior. SetX es de la API 11. No está obsoleto el diseño absoluto. – user866821

4

en la vista padre (como LinearView) ClipChildrens=false establecer, si lo que busca

verificación de este código, que funciona para mí ...

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:layout_marginRight="-20dp" 
     android:src="@drawable/ic_launcher" /> 

</FrameLayout> 
+0

gracias por la respuesta. No funciona – user866821

+0

No funcionó para mí también. :( – Hesam

+0

@Hesam edité la respuesta –

2

He descubierto que si se utiliza negativo márgenes, entonces no puede alinear a Parent en el lado opuesto, por lo tanto, digamos que está tratando de tener la mitad de la imagen en el lado derecho de la vista, no puede especificar android: layout_alignParentLeft. Además, si necesita la imagen completa y no desea que se recorte, como en el caso de que quiera animar en pantalla completa onClick, debe establecer el diseño principal android: clipChildren = "false". El siguiente código XML def funciona para mí:

<ImageView 
     android:id="@+id/you_feature_image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginRight="@dimen/feature_margin_right" 
     android:contentDescription="feature_image" 
     android:gravity="center_vertical" 
     android:padding="@dimen/zero" 
     android:paddingBottom="@dimen/zero" 
     android:paddingLeft="@dimen/zero" 
     android:paddingRight="@dimen/zero" 
     android:paddingTop="@dimen/zero" 
     android:src="@drawable/feature_phone_02_2x" /> 

estoy publicando esto ahora porque acabo quemado unas horas tratando de resolver esto a mí mismo, y pareció que tal vez ayudaría a alguien más en el futuro en caso de que venga a través de esta pregunta como lo hice.

Cuestiones relacionadas