如何将视图定位在屏幕外,以便可以进行动画移动到屏幕上?

11

我有一个填满屏幕的 RelativeLayout,上面放置了几个使用 LayoutParams 边距定位的 ImageView。这些 ImageView 以不同的方式进行动画,而在某些情况下,我希望一张图片从右侧“飞入”屏幕。

不幸的是,如果我将该 ImageView 的 leftMargin 设置为大于屏幕宽度,它将不会出现(或者在动画开始时部分可见时被裁剪)。

我尝试将 RelativeLayout 的宽度和高度设置为大于屏幕尺寸 - 它可以工作,但只能部分地工作:如果图像完全位于屏幕外面,它不起作用,如果图像部分可见,则不会被裁剪,但仅适用于右侧和底部。

所以,我的问题是:如何将多个 ImageViews 放置在屏幕内和外,以便我可以使用 Animation 进行动画?


好的,请在您有解决方案时发布。我目前也遇到了一些动画问题,我的动画沿着错误的轴进行,还不知道原因。 - Mathias Conradt
2个回答

5
最后,我使用了一个技巧:将AnimationDrawable和视图动画结合起来。我按照以下步骤操作(假设动画需要运行T毫秒):
  1. 将ImageView定位在屏幕上。
  2. 将其背景设置为具有以下帧的AnimationDrawable:
    • 空Drawable:1ms,
    • 普通Drawable:Tms。
  3. 将视图动画更改为以下内容:
    • 跳转到屏幕外位置(平移时间为1ms),
    • 执行普通动画。

5
你已经实现了吗?能否检查一下代码? - gwvatieri

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接