From 0ec03035f54ac5b86e3e28bb93ceaa3837b43681 Mon Sep 17 00:00:00 2001 From: Denis Date: Sat, 30 Jul 2016 20:24:47 +0200 Subject: [PATCH] maximal frequency of the data --- .../common/views/FrequencyChart.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/activities/common/views/FrequencyChart.java b/app/src/main/java/org/isoron/uhabits/activities/common/views/FrequencyChart.java index 8c06e498b..fa1d38214 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/common/views/FrequencyChart.java +++ b/app/src/main/java/org/isoron/uhabits/activities/common/views/FrequencyChart.java @@ -66,6 +66,7 @@ public class FrequencyChart extends ScrollableChart @NonNull private HashMap frequency; + private int maxFreq; public FrequencyChart(Context context) { @@ -90,9 +91,23 @@ public class FrequencyChart extends ScrollableChart public void setFrequency(HashMap frequency) { this.frequency = frequency; + maxFreq = getMaxFreq(frequency); postInvalidate(); } + private int getMaxFreq(HashMap frequency) + { + int maxValue = 1; + for (Integer[] values : frequency.values()) + { + for (Integer value : values) + { + maxValue = Math.max(value, maxValue); + } + } + return maxValue; + } + public void setIsBackgroundTransparent(boolean isBackgroundTransparent) { this.isBackgroundTransparent = isBackgroundTransparent; @@ -237,8 +252,8 @@ public class FrequencyChart extends ScrollableChart float padding = rect.height() * 0.2f; // maximal allowed mark radius float maxRadius = (rect.height() - 2 * padding) / 2.0f; - // the real mark radius is scaled down by a factor depending on the value - float scale = Math.min(value, 4) / 4.0f; + // the real mark radius is scaled down by a factor depending on the maximal frequency + float scale = 1.0f/maxFreq * value; float radius = maxRadius * scale; int colorIndex = Math.round((colors.length-1) * scale);