diff options
| author | Siyamed Sinir <siyamed@google.com> | 2018-03-19 22:15:31 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-03-19 22:15:31 +0000 |
| commit | 46c84bf237f0e1e4a60fbe763d0b699ad253ca85 (patch) | |
| tree | 7d67be162555e884bbb1f5ea0bea56b0d210f7b7 /core/java/android/widget/TextView.java | |
| parent | 46c0e91b74fbddf0031175ec855b11a12581fe11 (diff) | |
| parent | 948693ea28e72a42cd36a014e91016bc967a71a4 (diff) | |
Merge "Fix rounding error related to autoSize" into pi-dev
Diffstat (limited to 'core/java/android/widget/TextView.java')
| -rw-r--r-- | core/java/android/widget/TextView.java | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index f77a6b72787f..72c8426482aa 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -1918,19 +1918,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener // Calculate the sizes set based on minimum size, maximum size and step size if we do // not have a predefined set of sizes or if the current sizes array is empty. if (!mHasPresetAutoSizeValues || mAutoSizeTextSizesInPx.length == 0) { - int autoSizeValuesLength = 1; - float currentSize = Math.round(mAutoSizeMinTextSizeInPx); - while (Math.round(currentSize + mAutoSizeStepGranularityInPx) - <= Math.round(mAutoSizeMaxTextSizeInPx)) { - autoSizeValuesLength++; - currentSize += mAutoSizeStepGranularityInPx; - } - - int[] autoSizeTextSizesInPx = new int[autoSizeValuesLength]; - float sizeToAdd = mAutoSizeMinTextSizeInPx; + final int autoSizeValuesLength = ((int) Math.floor((mAutoSizeMaxTextSizeInPx + - mAutoSizeMinTextSizeInPx) / mAutoSizeStepGranularityInPx)) + 1; + final int[] autoSizeTextSizesInPx = new int[autoSizeValuesLength]; for (int i = 0; i < autoSizeValuesLength; i++) { - autoSizeTextSizesInPx[i] = Math.round(sizeToAdd); - sizeToAdd += mAutoSizeStepGranularityInPx; + autoSizeTextSizesInPx[i] = Math.round( + mAutoSizeMinTextSizeInPx + (i * mAutoSizeStepGranularityInPx)); } mAutoSizeTextSizesInPx = cleanupAutoSizePresetSizes(autoSizeTextSizesInPx); } |
