有什么方法可以避免在Android上重叠2个图像?

时间:2015-02-01 11:31:40

标签: android image overlap translate-animation

对于Android应用程序,我正在做无限的翻译动画。

imageview 首先启动,延迟1秒后, imageview2 启动。

Animation animation = new TranslateAnimation(0, 0, -500, 500);
animation.setDuration(4000);
imageview.startAnimation(animation);
animation.setRepeatCount(Animation.INFINITE);

Animation animation2 = new TranslateAnimation(0, 0, -500, 500);
animation2.setDuration(4000);
imageview2.startAnimation(animation2);
imageview2.setStartOffset(1000);
animation2.setRepeatCount(Animation.INFINITE);

问题是,有时 imageview 重叠 imageview2 。 我该怎么做才能避免2张图像的重叠?

任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

你可能想尝试这样的事情:

private boolean isViewOverlapping(View firstView, View secondView) {
    int[] firstPosition = new int[2];
    int[] secondPosition = new int[2];

    firstView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
    firstView.getLocationOnScreen(firstPosition);
    secondView.getLocationOnScreen(secondPosition);

    int r = firstView.getMeasuredWidth() + firstPosition[0];
    int l = secondPosition[0];
    return r >= l && (r != 0 && l != 0);
}

这是一种方法,它将接收两个视图并检查它们是否重叠。如果是,则返回true的布尔值。我假设一旦你把这个布尔值返回为true,你就会想要执行另一个动作以确保它们不再重叠,例如将一个视图向下移动400像素。这将导致图像不重叠,您可以避免令人担忧的情况。希望这有帮助!