好吧,我已经有了这个方法,它结束这样的:if语句要通过两种方式
if(totalDeg > mStartAngle && totalDeg < mSweepAngle){
return true;
}
else {
return false;
}
奇怪的是,在调试一步一步的时候,我停在return true
,按F6(或F5)在Eclipse上,那么下一条指令是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;
}
}
很好,实际上是回到其价值?正确的? – 2013-03-05 14:05:59
不,应该返回true(实际上,它只是进入返回true,如果满足条件),但它返回false – 2013-03-05 14:06:42
显示调用这个方法? – Geobits 2013-03-05 14:06:53