zxing的view出异常
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1442)
at java.util.HashMap$KeyIterator.next(HashMap.java:1466)
at com.xxxx.zxing.view.ViewfinderView.onDraw(ViewfinderView.java:231)
at android.view.View.draw(View.java:20483)
at android.view.View.updateDisplayListIfDirty(View.java:19294)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4375)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4348)
at android.view.View.updateDisplayListIfDirty(View.java:19254)
简单优化
Collection<ResultPoint> currentPossible = possibleResultPoints;
Collection<ResultPoint> currentLast = lastPossibleResultPoints;
if (currentPossible.isEmpty()) {
lastPossibleResultPoints = null;
} else {
possibleResultPoints = new HashSet<>(5);
lastPossibleResultPoints = currentPossible;
paint.setAlpha(OPAQUE);
paint.setColor(resultPointColor);
try {
for (ResultPoint point : currentPossible) {
canvas.drawCircle(frame.left + point.getX(), frame.top
+ point.getY(), 6.0f, paint);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (currentLast != null) {
paint.setAlpha(OPAQUE / 2);
paint.setColor(resultPointColor);
try {
for (ResultPoint point : currentLast) {
canvas.drawCircle(frame.left + point.getX(), frame.top
+ point.getY(), 3.0f, paint);
}
} catch (Exception e) {
e.printStackTrace();
}
}
网友评论