Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android应用程序上的Math.min出现问题_Java_Android - Fatal编程技术网

Java Android应用程序上的Math.min出现问题

Java Android应用程序上的Math.min出现问题,java,android,Java,Android,我正在跟踪一个问题,该问题导致我的应用程序在拖动触摸屏时出现一些闪烁 这个问题似乎与Math.min在某些情况下没有返回正确的结果有关 mPointerPos.mPos.x = Math.min(mPointerPos.mPos.x, 0.9f * mDragStartPos.x); 我用条件语句更改了函数调用,但问题仍然存在 float min = 0.9f * mDragStartPos.x; Log.w("!", "" + mPointerPos.mPos.x + " " + min);

我正在跟踪一个问题,该问题导致我的应用程序在拖动触摸屏时出现一些闪烁

这个问题似乎与Math.min在某些情况下没有返回正确的结果有关

mPointerPos.mPos.x = Math.min(mPointerPos.mPos.x, 0.9f * mDragStartPos.x);
我用条件语句更改了函数调用,但问题仍然存在

float min = 0.9f * mDragStartPos.x;
Log.w("!", "" + mPointerPos.mPos.x + " " + min);
mPointerPos.mPos.x = mPointerPos.mPos.x < min ? mPointerPos.mPos.x : min;
Log.w("!\t->", "" + mPointerPos.mPos.x);
在第6行,我希望看到-1.499999,即-0.2417283和-1.499999之间的最小值,而不是-1.5933207


有什么我遗漏的吗?mpoimpos.mPos和mDragStartPos属于android.graphics.PointF

mpoimpos显然是由其他线程在这两行之间更新的。MPOS是如何更新的?这段代码在哪里执行?回答这些问题可能会为您的问题提供答案,可能只是在两侧添加一个同步块。。。或者重写该部分程序的整个逻辑。

我敢打赌,使其尽可能简单是多线程的问题。因此,仅对这些操作使用局部变量:float x=mDragStartPos.x;',并使用x`而不是全局变量或参数变量。或者同步代码。如果不这样做,当您进行计算时,mpoimpos.mPos.x可能会被另一个线程修改。mpoimpos.mPos在onDrawFrame和onTouch中更新,我想我必须将前者中的逻辑移到其他地方以避免此类问题。
01-12 08:36:34.133 26229-26229 W/!: -0.3032546
01-12 08:36:34.134 26229-26229 W/!: -0.3032546 -1.4999999
01-12 08:36:34.134 26229-26229 W/!  ->: -1.4999999
01-12 08:36:34.147 26229-26229 W/!: -0.2417283
01-12 08:36:34.148 26229-26229 W/!: -0.2417283 -1.4999999
01-12 08:36:34.152 26229-26229 W/!  ->: -1.5933207
01-12 08:36:34.158 26229-26229 W/!: -0.19270718
01-12 08:36:34.159 26229-26229 W/!: -0.19270718 -1.4999999
01-12 08:36:34.159 26229-26229 W/!  ->: -1.4999999