Necesito hacer animar a mi Pariente Diseño cuando haga clic sobre la imagen vista..

1.Movimiento Relativo de Diseño de Abajo a Arriba (al hacer clic en él en la vista de imagen).

2.Movimiento de la espalda de Arriba a Abajo (al hacer clic en él de nuevo, en vista de imagen).

Primera cuando hago clic en la imagen ver que funciona bien y Relativa Diseño mover hacia arriba desde la parte inferior a la parte superior, pero cuando me vuelva a hacer clic en la imagen de vista, es animar desde la parte superior a la parte inferior, cuando se llega a la posición original es ocultar en mi actividad..cualquier ayuda y Gracias de antemano.

Este es mi Actividad :

 public class MainActivity extends Activity {
RelativeLayout rl_footer;
ImageView iv_header;
boolean isBottom = true;
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rl_footer = (RelativeLayout) findViewById(R.id.rl_footer);
iv_header = (ImageView) findViewById(R.id.iv_up_arrow);
iv_header.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
iv_header.setImageResource(R.drawable.down_arrow);
//iv_header.setVisibility(View.INVISIBLE);
//iv_down.setVisibility(View.VISIBLE);
iv_header.setPadding(0, 10, 0, 0); //substitute parameters for
//left, top, right, bottom
rl_footer.setBackgroundResource(R.drawable.up_manu_bar);
//FooterAnimation();
if (isBottom) {
FooterAnimation();
isBottom = false;
} else {
iv_header.setImageResource(R.drawable.up_arrow);
iv_header.setPadding(0, 0, 0, 10);
rl_footer.setBackgroundResource(R.drawable.down_manu_bar1);
headerAnimation();
isBottom = true;
}
}
});
}
public void FooterAnimation() {
Animation slide = null;
slide = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
0.0f, Animation.RELATIVE_TO_SELF, -5.0f);
slide.setDuration(400);
slide.setFillAfter(true);
slide.setFillEnabled(true);
rl_footer.startAnimation(slide);
slide.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
rl_footer.clearAnimation();
if (isBottom) {
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
rl_footer.getWidth(), rl_footer.getHeight());
lp.setMargins(rl_footer.getWidth(), 0, 0, 0);
rl_footer.setLayoutParams(lp);
} else {
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
rl_footer.getWidth(), rl_footer.getHeight());
lp.setMargins(0, 0, 0, 0);
rl_footer.setLayoutParams(lp);
}
}
});
}
public void headerAnimation() {
Animation slide = null;
slide = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
0.0f, Animation.RELATIVE_TO_SELF, 5.2f);
slide.setDuration(400);
slide.setFillAfter(true);
slide.setFillEnabled(true);
rl_footer.startAnimation(slide);
slide.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
rl_footer.clearAnimation();
if (isBottom) {
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
rl_footer.getWidth(), rl_footer.getHeight());
lp.setMargins(rl_footer.getWidth(), 0, 0, 0);
rl_footer.setLayoutParams(lp);
} else {
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
rl_footer.getWidth(), rl_footer.getHeight());
lp.setMargins(0, 0, 0, 0);
rl_footer.setLayoutParams(lp);
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

y mi Xml:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/autograph_bg" >
<RelativeLayout
android:id="@+id/rl_footer"
android:layout_width="fill_parent"
android:layout_height="70dp"
android:layout_alignParentBottom="true"
android:background="@drawable/down_manu_bar1" >
<ImageView
android:id="@+id/iv_new_file"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="18dp"
android:onClick="onNewFileClick"
android:src="@drawable/file_icon" />
<TextView
android:id="@+id/tv_new_file"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/iv_new_file"
android:layout_below="@+id/iv_new_file"
android:text="New"
android:textColor="#ffffff" />
<ImageView
android:id="@+id/iv_insert"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_alignTop="@+id/iv_new_file"
android:layout_marginLeft="30dp"
android:layout_toRightOf="@+id/iv_new_file"
android:src="@drawable/insert_icon" />
<TextView
android:id="@+id/tv_insert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/iv_insert"
android:layout_below="@+id/iv_insert"
android:text="Insert"
android:textColor="#ffffff" />
<ImageView
android:id="@+id/iv_up_arrow"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:paddingBottom="10dp"
android:src="@drawable/up_arrow" />
<ImageView
android:id="@+id/iv_down_arrow"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/down_arrow"
android:paddingBottom="10dp"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_save"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_alignTop="@+id/iv_insert"
android:layout_marginLeft="30dp"
android:layout_toRightOf="@+id/iv_up_arrow"
android:src="@drawable/save" />
<TextView
android:id="@+id/tv_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/iv_save"
android:layout_alignParentBottom="true"
android:text="Save"
android:textColor="#ffffff" />
<ImageView
android:id="@+id/iv_settings"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_alignTop="@+id/iv_save"
android:layout_marginLeft="27dp"
android:layout_toRightOf="@+id/tv_save"
android:paddingTop="2dp"
android:src="@drawable/icon_settings" />
<TextView
android:id="@+id/tv_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="260dp"
android:text="Settings"
android:textColor="#ffffff" />
</RelativeLayout>
</RelativeLayout>

OriginalEl autor Farhan Shah | 2013-12-04

1 Comentario

  1. 19

    Me han solucionado mi problema y ahora mi animación funciona bien 🙂
    si alguien necesitaba solo copie el código y xml y plz no gracias :p

    Mi Actividad MainActivity:

    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.animation.Animation;
    import android.view.animation.Animation.AnimationListener;
    import android.view.animation.AnimationUtils;
    import android.view.animation.TranslateAnimation;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.RelativeLayout;
    public class MainActivity extends Activity {
    RelativeLayout rl_footer;
    ImageView iv_header;
    boolean isBottom = true;
    Button btn1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    rl_footer = (RelativeLayout) findViewById(R.id.rl_footer);
    iv_header = (ImageView) findViewById(R.id.iv_up_arrow);
    iv_header.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
    //TODO Auto-generated method stub
    iv_header.setImageResource(R.drawable.down_arrow);
    iv_header.setPadding(0, 10, 0, 0); 
    rl_footer.setBackgroundResource(R.drawable.up_manu_bar);
    if (isBottom) {
    SlideToAbove();
    isBottom = false;
    } else {
    iv_header.setImageResource(R.drawable.up_arrow);
    iv_header.setPadding(0, 0, 0, 10);
    rl_footer.setBackgroundResource(R.drawable.down_manu_bar1);
    SlideToDown();
    isBottom = true;
    }
    }
    });
    }
    public void SlideToAbove() {
    Animation slide = null;
    slide = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,
    Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
    0.0f, Animation.RELATIVE_TO_SELF, -5.0f);
    slide.setDuration(400);
    slide.setFillAfter(true);
    slide.setFillEnabled(true);
    rl_footer.startAnimation(slide);
    slide.setAnimationListener(new AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {
    }
    @Override
    public void onAnimationRepeat(Animation animation) {
    }
    @Override
    public void onAnimationEnd(Animation animation) {
    rl_footer.clearAnimation();
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
    rl_footer.getWidth(), rl_footer.getHeight());
    //lp.setMargins(0, 0, 0, 0);
    lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
    rl_footer.setLayoutParams(lp);
    }
    });
    }
    public void SlideToDown() {
    Animation slide = null;
    slide = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,
    Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
    0.0f, Animation.RELATIVE_TO_SELF, 5.2f);
    slide.setDuration(400);
    slide.setFillAfter(true);
    slide.setFillEnabled(true);
    rl_footer.startAnimation(slide);
    slide.setAnimationListener(new AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {
    }
    @Override
    public void onAnimationRepeat(Animation animation) {
    }
    @Override
    public void onAnimationEnd(Animation animation) {
    rl_footer.clearAnimation();
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
    rl_footer.getWidth(), rl_footer.getHeight());
    lp.setMargins(0, rl_footer.getWidth(), 0, 0);
    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    rl_footer.setLayoutParams(lp);
    }
    });
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    //Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    }
    }

    y mi Xml activity_main:

     <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rl_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/autograph_bg" >
    <RelativeLayout
    android:id="@+id/rl_footer"
    android:layout_width="fill_parent"
    android:layout_height="70dp"
    android:layout_alignParentBottom="true"
    android:background="@drawable/down_manu_bar1" >
    <ImageView
    android:id="@+id/iv_new_file"
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_marginLeft="18dp"
    android:onClick="onNewFileClick"
    android:src="@drawable/file_icon" />
    <TextView
    android:id="@+id/tv_new_file"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/iv_new_file"
    android:layout_below="@+id/iv_new_file"
    android:text="New"
    android:textColor="#ffffff" />
    <ImageView
    android:id="@+id/iv_insert"
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:layout_alignTop="@+id/iv_new_file"
    android:layout_marginLeft="30dp"
    android:layout_toRightOf="@+id/iv_new_file"
    android:src="@drawable/insert_icon" />
    <TextView
    android:id="@+id/tv_insert"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/iv_insert"
    android:layout_below="@+id/iv_insert"
    android:text="Insert"
    android:textColor="#ffffff" />
    <ImageView
    android:id="@+id/iv_up_arrow"
    android:layout_width="45dp"
    android:layout_height="45dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:paddingBottom="10dp"
    android:src="@drawable/up_arrow" />
    <ImageView
    android:id="@+id/iv_down_arrow"
    android:layout_width="45dp"
    android:layout_height="45dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@drawable/down_arrow"
    android:paddingBottom="10dp"
    android:visibility="gone" />
    <ImageView
    android:id="@+id/iv_save"
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:layout_alignTop="@+id/iv_insert"
    android:layout_marginLeft="30dp"
    android:layout_toRightOf="@+id/iv_up_arrow"
    android:src="@drawable/save" />
    <TextView
    android:id="@+id/tv_save"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/iv_save"
    android:layout_alignParentBottom="true"
    android:text="Save"
    android:textColor="#ffffff" />
    <ImageView
    android:id="@+id/iv_settings"
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:layout_alignTop="@+id/iv_save"
    android:layout_marginLeft="27dp"
    android:layout_toRightOf="@+id/tv_save"
    android:paddingTop="2dp"
    android:src="@drawable/icon_settings" />
    <TextView
    android:id="@+id/tv_settings"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginLeft="260dp"
    android:text="Settings"
    android:textColor="#ffffff" />
    </RelativeLayout>
    </RelativeLayout>

    acaba de crear nuevo proyecto android y copiar y pegar el código y divertirse! 🙂
    recuerde también en xml he de vista de imagen y su fondo de imágenes reemplazar con las palmas de las propias imágenes gracias..

    funcionará como una imagen que caen desde la parte superior a la parte inferior y desaparecen @Farhan Shah
    funciona muy bien en mi lado.
    en mi caso realtivelayout solo parpadea una vez
    en mi caso funciona bien, cuando u haga clic en relación de diseño el diseño de animar desde la parte inferior a la parte superior,y cuando haga clic de nuevo en la relación de diseño el diseño con éxito va hacia abajo desde la parte superior a la parte inferior. plz revise este enlace stackoverflow.com/questions/20323628/…

    OriginalEl autor Farhan Shah

Dejar respuesta

Please enter your comment!
Please enter your name here