好的,我有这个方法,它的结尾是这样的:
if(totalDeg > mStartAngle && totalDeg < mSweepAngle){
return true;
}
else {
return false;
}
奇怪的是,在逐步调试时,我停在return true
,在 Eclipse 上按 F6(或 F5),然后下一条指令是return false
!!!
这怎么可能?
PD。这就是我调用这个函数的地方:
if(d.isInArea(x, y)){
//d.onTap();
Toast.makeText(mContext, "Directory " + d.getName() + " was tapped!", Toast.LENGTH_SHORT).show();
}
这是 isInArea 方法:
public boolean isInArea(float x, float y){
int deltaX = (int) (x - mRectShape.centerX());
int deltaY = (int) (y - mRectShape.centerY());
if (Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2)) > mRectShape.width()/2) {
return false;
}
double offset = 0;
//now calculate angle
double angle = Math.atan2(deltaY, deltaX);
double total = angle;
double totalDeg = Math.toDegrees(total);
Log.d(LOG_TAG, "angle :" + totalDeg);
if(totalDeg > mStartAngle && totalDeg < mSweepAngle){
return true;
}
else {
return false;
}
}