|
|
@ -173,7 +173,8 @@ class FrequencyChart : ScrollableChart {
|
|
|
|
rect[0f, 0f, baseSize.toFloat()] = baseSize.toFloat()
|
|
|
|
rect[0f, 0f, baseSize.toFloat()] = baseSize.toFloat()
|
|
|
|
rect.offset(prevRect!!.left, prevRect!!.top + baseSize * j)
|
|
|
|
rect.offset(prevRect!!.left, prevRect!!.top + baseSize * j)
|
|
|
|
val i = localeWeekdayList[j] % 7
|
|
|
|
val i = localeWeekdayList[j] % 7
|
|
|
|
if (values != null) drawMarker(canvas, rect, values[i])
|
|
|
|
if (values != null)
|
|
|
|
|
|
|
|
drawMarker(canvas, rect, values[i])
|
|
|
|
rect.offset(0f, rowHeight)
|
|
|
|
rect.offset(0f, rowHeight)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
drawFooter(canvas, rect, date)
|
|
|
|
drawFooter(canvas, rect, date)
|
|
|
@ -222,11 +223,12 @@ class FrequencyChart : ScrollableChart {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun drawMarker(canvas: Canvas, rect: RectF?, value: Int?) {
|
|
|
|
private fun drawMarker(canvas: Canvas, rect: RectF?, value: Int?) {
|
|
|
|
|
|
|
|
val valueCopy = value?.let { max(0, it) }
|
|
|
|
val padding = rect!!.height() * 0.2f
|
|
|
|
val padding = rect!!.height() * 0.2f
|
|
|
|
// maximal allowed mark radius
|
|
|
|
// maximal allowed mark radius
|
|
|
|
val maxRadius = (rect.height() - 2 * padding) / 2.0f
|
|
|
|
val maxRadius = (rect.height() - 2 * padding) / 2.0f
|
|
|
|
// the real mark radius is scaled down by a factor depending on the maximal frequency
|
|
|
|
// the real mark radius is scaled down by a factor depending on the maximal frequency
|
|
|
|
val scale = 1.0f / maxFreq * value!!
|
|
|
|
val scale = 1.0f / maxFreq * valueCopy!!
|
|
|
|
val radius = maxRadius * scale
|
|
|
|
val radius = maxRadius * scale
|
|
|
|
val colorIndex = min((colors.size - 1), ((colors.size - 1) * scale).roundToInt())
|
|
|
|
val colorIndex = min((colors.size - 1), ((colors.size - 1) * scale).roundToInt())
|
|
|
|
pGraph!!.color = colors[colorIndex]
|
|
|
|
pGraph!!.color = colors[colorIndex]
|
|
|
|