从父项外部在屏幕上制作视图幻灯片

时间:2014-11-20 13:47:21

标签: android android-animation

假设我想在一个视图上设置TranslateAnimation以在屏幕上滑动。如果我们有一个父布局,例如该布局内的按钮,一切看起来都很好。然后在按钮上轻松定义TranslateAnimation将始终显示在屏幕的“外部”。

问题是如果我们有这样的情况:

<LinearLayout1>
  ... other layouts, views ...
  <LinearLayout2>
    <button></button>
  </LinearLayout2>
  ... other layouts, views ...
</LinearLayout1>

问题是按钮位于LinearLayout2内,而LinearLayout2位于LinearLayout1内。这意味着我可以使TranslateAnimation仅在LinearLayout2中工作。我不能在屏幕外面显示按钮,因为LinearLayout2只占用一块屏幕而且按钮不能从它的父母外面动画。

在这种情况下,是否可以完成从屏幕外部显示的动画?谢谢!

1 个答案:

答案 0 :(得分:0)

您当然可以从其父级外部查看动画。但是,我不知道从其祖父母外面制作动画。我还没有尝试过,但我认为视图会被修剪为仅在其父级中绘制。

以下是从父视图底部为视图设置动画的一些代码:

TranslateAnimation a = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT, 0,  // from X
    Animation.RELATIVE_TO_PARENT, 0,  // to X
    Animation.RELATIVE_TO_PARENT, 1f, // from Y
    Animation.RELATIVE_TO_PARENT, 0); // to Y
a.setDuration(1000); // milliseconds
button.startAnimation(a);

LinearLayout2靠近屏幕边缘吗?你能不能从父母的那一侧动画按钮,所以它似乎来自屏幕外?