Я провел весь день, пытаясь понять это. Я пробовал множество кодовых комбинаций, но ни одна из них не хочет работать. Ну, технически они работают, но не так, как я хочу. Если я добавлю свойство translationY, оно будет работать. Я в основном хочу запустить 2 анимации, оба переводчика, на одном объекте одновременно. Объект должен двигаться слева направо на всю ширину экрана и одновременно перемещаться вперед и назад на небольшое расстояние. Таким образом, главный вопрос заключается в том, возможно ли достичь этого или невозможно использовать одно и то же свойство одновременно с AnimatorSet?
Вот текущий код, с которым я работаю:
private void _ballLevel20Animation () {
move1.cancel();
int center = (board.getMeasuredWidth() / 2);
int lr = board.getMeasuredWidth();
final float left = Float.valueOf(100 - center);
final float right = Float.valueOf(center - 100);
int center1 = (board.getMeasuredWidth() / 6);
final float left1 = Float.valueOf(100 - center);
final float right1 = Float.valueOf(center - 100);
move1.setTarget(ball);
move1.setPropertyName("translationX");
move1.setFloatValues(left, right);
move1.setRepeatCount(ObjectAnimator.INFINITE);
move1.setDuration((int)(ball_duration_increa));
move1.setRepeatMode(ValueAnimator.REVERSE);
bounce_ani.setTarget(ball);
bounce_ani.setPropertyName("translationX");
bounce_ani.setFloatValues((float)(SketchwareUtil.getDip(getApplicationContext(), (int)(-20))), (float)(SketchwareUtil.getDip(getApplicationContext(), (int)(20))));
bounce_ani.setRepeatCount(ObjectAnimator.INFINITE);
bounce_ani.setDuration((int)(ball_duration_increa / 6));
bounce_ani.setRepeatMode(ValueAnimator.REVERSE);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(bounce_ani).with(move1);
animatorSet.start();
/*bounce_ani.setFloatValues(right1, left1);*/
}