由于您使用的是 API11,因此请使用Animator API。所有视图现在都有相应的设置器和获取器的属性。要将视图向左移到范围之外,请获取屏幕的宽度,然后执行以下操作:
View viewToShiftOut = getOutView();
ObjectAnimator outAnim = ObjectAnimator.ofFloat(viewToShiftOut, "x", 0, -widthOfScreen);
outAnim.setDuration(1000);
outAnim.start();
这会将视图及其内容完全移出屏幕,持续时间为 1 秒(1000 毫秒)。要在它的位置移动一个,请执行以下操作:
View viewToShiftIn = getInView();
ObjectAnimator inAnim = ObjectAnimator.ofFloat(viewToShiftIn, "x", widthOfScreen, 0);
inAnim.setDuration(1000);
inAnim.start();
所有属性、可点击区域等都将跟随视图,因此您将在动画完成时完成。您可以像这样为它们设置动画:
View viewToShiftOut = getOutView();
View viewToShiftIn = getInView();
ObjectAnimator outAnim = ObjectAnimator.ofFloat(viewToShiftOut, "x", 0, -widthOfScreen);
ObjectAnimator inAnim = ObjectAnimator.ofFloat(viewToShiftOut, "x", widthOfScreen, 0);
outAnim.setDuration(1000);
inAnim.setDuration(1000);
outAnim.start();
inAnim.start();
博文
编辑:我注意到您只想将视图移动 1/3,因此您可以获得每个移动widthOfScreen/3
.
编辑 2:另一个优点是您可以将它与硬件加速一起使用,而不会出现大多数 3.0+ 平板电脑所具有的问题。