对于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张图像的重叠?
任何指针都会受到赞赏。
答案 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像素。这将导致图像不重叠,您可以避免令人担忧的情况。希望这有帮助!