AnimationSet
объединяет анимации и запускает их параллельно.Вы должны создать 2 метода в своем пользовательском представлении, например:
public void moveRight() {
TranslateAnimation mMoveRight = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 300, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF);
mMoveRight.setDuration(6000);
mMoveRight.setFillEnabled(true);
mMoveRight.setFillAfter(true);
this.startAnimation(mMoveRight);
}
...
public void moveDown() {
TranslateAnimation mMoveDown = new TranslateAnimation(Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, 50);
mMoveDown.setDuration(6000);
mMoveDown.setFillEnabled(true);
mMoveDown.setFillAfter(true);
this.startAnimation(mMoveDown);
}
Имея это, вы сможете запускать анимацию (анимация вниз и вправо отдельно) при нажатии кнопки.
CustomLinearLayout testLayout = ...; // initialize your layout
buttonA.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
testLayout.moveRight();
}
});
buttonA.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
testLayout.moveDown();
}
});
PS: я не проверял ваши анимации перевода, если они работают должным образом, просто предоставил вам идею.