我正在试图找出在另一个上方显示图像视图的最佳方法,并且通过手指的滑动,顶部图像视图将从屏幕上滑落 . 想想一副牌:当你用手指将顶牌从牌组上滑下来时,它下方的牌变得越来越明显 .
在使用ImageSwitcher之前,我创建了一个幻灯片放入和缩小动画 . 但是有效的方式是当一个图像滑出屏幕右侧时,另一个图像从左侧向右滑动(这不是我想要的情况) . 因此,我考虑过两个图像视图(一个在另一个上面),当顶部移出屏幕时,底部变得更加明显,看起来好像它位于顶部图像视图之下 . 但问题是我有很多图像可以做到这一点,如果我这样做,我需要将顶部的imageview放在屏幕下方的底部 .
So, to clear up what I'm asking, 接近显示两个图像视图的最佳方法是什么,一个在另一个图像视图的顶部(Z轴),当用户在屏幕上滑动手指时,顶部图像视图将从屏幕上滑落,使底部图像视图可见?
任何建议,想法或帮助将不胜感激!
1 回答
经过一些实验,我终于想出了我的解决方案 . 虽然,我仍然需要调整动画才能获得完整的效果 . 我首先看了一下
LayerDrawable
因为这会根据z轴将图像相互对齐 . 但是,我无法想出一种方法一次只动画一个图层 . 所以,为了解决我的问题,我使用了FrameLayout.
FrameLayouts很适合在z轴上排序(它们按照您将它们放在XML中的顺序相互依赖) . 但是,在尝试将视图放置在屏幕的特定区域时,它们会变得复杂 . 首先,我制作了我的布局XML:
然后,当然,在
Activity
中我设置了内容视图并声明并实例化了imageview对象:然后,我创建了动画:
现在动画已创建,我设置了一个
AnimationListener
. 这样我可以判断动画何时完成:如果您在onAnimationEnd方法的上面的代码中注意到我放置了
imageTwo.bringToFront();
那么当顶部imageview滑出屏幕时它会赢得't be visible anymore (if I didn' t使用该方法,顶部imageview将重新出现在其原始位置,在其他imageview上,一旦它的动画完成了) .最后,剩下要做的就是设置图像视图的图像并在需要时启动动画:
我希望这证明对任何可能面临同样问题的人都有用 .