Guys, I developed a view where I added three buttons in this view. I have provided an on_click object for all three buttons. My requirement is that if I press button_1, then button_2 and button three should be moved to a new location. but the problem is that after applying the move animation to button_2, the button_3 on_click function does not work on them in this new position.
MainActivity.java
public class MainActivity extends Activity {
ImageButton slider,slidernew,sliderexisting;
boolean flag1 = true;
boolean flag2 = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
slider = (ImageButton) findViewById(R.id.imageButton1);
slidernew = (ImageButton) findViewById(R.id.imageButton2);
sliderexisting = (ImageButton) findViewById(R.id.imageButton3);
slider.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(flag1==true)
{
animateSliderForward();
flag1=false;
}
else{
animateSliderBackward();
flag1=true;
}
}
});
slidernew.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,SecondActivity.class));
}
});
sliderexisting.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,SecondActivity.class));
}
});
}
void animateSliderForward(){
float fromX=0;
float toX=100;
float fromY=0;
float toY=100;
TranslateAnimation animation = new TranslateAnimation(fromX, toX, fromY, toY);
animation.setDuration(1000);
animation.setFillAfter(true);
float fromA=0;
float toA=-100;
float fromB=0;
float toB=100;
TranslateAnimation animation1 = new TranslateAnimation(fromA, toA, fromB, toB);
animation1.setDuration(1000);
animation1.setFillAfter(true);
slidernew.startAnimation(animation1);
sliderexisting.startAnimation(animation);
}
void animateSliderBackward(){
float fromX=100;
float toX=0;
float fromY=100;
float toY=0;
TranslateAnimation animation = new TranslateAnimation(fromX, toX, fromY, toY);
animation.setDuration(1000);
animation.setFillAfter(true);
float fromA=-100;
float toA=0;
float fromB=100;
float toB=0;
TranslateAnimation animation1 = new TranslateAnimation(fromA, toA, fromB, toB);
animation1.setDuration(1000);
animation1.setFillAfter(true);
slidernew.startAnimation(animation1);
sliderexisting.startAnimation(animation);
}
}
source
share