From 6cb9b20b7b9e9e0a0be61da524b914641beda180 Mon Sep 17 00:00:00 2001 From: Chris Banes Date: Mon, 22 Feb 2016 16:11:10 +0000 Subject: [PATCH] Fix rounding error in SeekBar tickmark drawing There are instances where an int calculation would result in a loss of precision and rounding error. Fixed by using a float instead. Change-Id: I595872f00552a7fd717a1754c1d8f5a50d776621 --- core/java/android/widget/AbsSeekBar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/widget/AbsSeekBar.java b/core/java/android/widget/AbsSeekBar.java index 9a6859387bdfa..34f3a47393ba8 100644 --- a/core/java/android/widget/AbsSeekBar.java +++ b/core/java/android/widget/AbsSeekBar.java @@ -694,7 +694,7 @@ public abstract class AbsSeekBar extends ProgressBar { final int halfH = h >= 0 ? h / 2 : 1; mTickMark.setBounds(-halfW, -halfH, halfW, halfH); - final int spacing = (getWidth() - mPaddingLeft - mPaddingRight) / count; + final float spacing = (getWidth() - mPaddingLeft - mPaddingRight) / (float) count; final int saveCount = canvas.save(); canvas.translate(mPaddingLeft, getHeight() / 2); for (int i = 0; i <= count; i++) {