所以我有一个ImageView,它使用ObjectAnimator移动到Activity的顶部。我在活动中有这些字段:
Rect rocketRectangle, planet1Rectangle, planet2Rectangle, planet3Rectangle;
在onCreate方法中,我将rocketRectangle设置为:
rocketRectangle = new Rect();
rocketImageView = (ImageView) findViewById(R.id.rocket_img);
rocketImageView.getDrawingRect(rocketRectangle);
我还有另一个动态创建LinearLayout的方法,在那里我根据for循环的索引在for循环中设置行星矩形,所以:
if(i == 1)
{
planet1Rectangle = new Rect();
linearLayouts.get(i).getDrawingRect(planet1Rectangle);
}
现在在我的onSensorChange方法中(基本上每秒调用一次)我有IF语句来检查与3个矩形(planet1Rectangle,planet2Rectangle和planet3Rectangle)中的任何一个的碰撞,所以:
Log.d("test", "we're running");
if(rocketRectangle.intersect(planet1Rectangle))
{
Log.d("intersect", "planet1");
}
注意在IF语句之外我有一个Log,这个被多次调用soo然而相交if语句中的日志不会...记住,当所有这一切都发生时,rocketImageView也在后台移动。
有谁知道为什么非IF语句都返回true?
谢谢!