さて、私はこのように終わるこのメソッドを持っています:
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;
}
}