假设我想在一个视图上设置TranslateAnimation
以在屏幕上滑动。如果我们有一个父布局,例如该布局内的按钮,一切看起来都很好。然后在按钮上轻松定义TranslateAnimation
将始终显示在屏幕的“外部”。
问题是如果我们有这样的情况:
<LinearLayout1>
... other layouts, views ...
<LinearLayout2>
<button></button>
</LinearLayout2>
... other layouts, views ...
</LinearLayout1>
问题是按钮位于LinearLayout2内,而LinearLayout2位于LinearLayout1内。这意味着我可以使TranslateAnimation
仅在LinearLayout2中工作。我不能在屏幕外面显示按钮,因为LinearLayout2只占用一块屏幕而且按钮不能从它的父母外面动画。
在这种情况下,是否可以完成从屏幕外部显示的动画?谢谢!
答案 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靠近屏幕边缘吗?你能不能从父母的那一侧动画按钮,所以它似乎来自屏幕外?