public BarChartClickableModel() { barValueList.add(new BarValue(11)); barValueList.add(new BarValue(4)); barValueList.add(new BarValue(6)); barValueList.add(new BarValue(13)); barValueList.add(new BarValue(8)); barValueList.add(new BarValue(9)); barDataSet = new BarDataSet(barValueList); barDataSet.setMaxValueOffsetPercent(0.2f); barDataSet.setDrawValueEnable(true); barDataSet.setValueTextSize(24); barDataSet.setAutoBarWidth(true); }
if (!barValue.isEnable()) continue; if (barValue.getValues().length < 1 || Float.isNaN(barValue.getValues()[0])) continue; if (barValue.getColor() != -2) { mRenderPaint.setColor(barValue.getColor()); } else { mRenderPaint.setColor(barDataSet.getColor()); if (barValue.getValueCount() > 0) { float value = barValue.getValues()[0] * mChartAnimator.getPhaseY(); if (barValue.getValueCount() > 1) bottom = calcHeight(barValue.getValues()[1], max, min); barValue.setCoordinate(x + width * 0.5f, top); mRenderPaint.setStyle(barValue.getPaintStyle()); canvas.drawLine(left, top, right, bottom, mRenderPaint); } else { if (barValue.getGradientColors() != null && barValue.getGradientColors().length > 1) { float centerX = (left + right) * 0.5f; mRenderPaint.setShader( new LinearGradient(centerX, top, centerX, bottom, barValue.getGradientColors()[0], barValue.getGradientColors()[1], Shader.TileMode.MIRROR)); labelLength = FloatUtils.formatFloatValue(mLabelBuffer, value, 2); } else { char[] labelCharArray = valueFormatter.format(barValue.getValues()[0], i).toCharArray();
@Override public void onEntryClick(Chart chart, int position) { Toast.makeText(parent.getContext(), "value = " + barValueList.get(position).getValues()[0], Toast.LENGTH_SHORT).show(); } });
@Override public void touch(float x, float y) { if (chart.isHighlightDisable()) return; for (BarDataSet dataSet : getDataSet()) { if (dataSet.isHighlightedVerticalEnable()) { highlight.setTouchX(x); highlight.setTouchY(y); int index = getEntryIndexByCoordinate(x, y) - dataSet.getStartIndexOffset(); if (index < dataSet.getValues().size()) { BarValue barValue = dataSet.getEntryForIndex(index); float xPosition = barValue.getX(); float yPosition = barValue.getY(); if (xPosition > 0 && yPosition > 0) { highlight.setX(xPosition); highlight.setY(yPosition); highlight.setDataIndex(index); chart.highlightValue(highlight); } } } } } });
barValueList.add(new BarValue(1)); barValueList.add(new BarValue(-2)); barValueList.add(new BarValue(0)); barValueList.add(new BarValue(3)); barValueList.add(new BarValue(1)); barValueList.add(new BarValue(2)); barValueList.add(new BarValue(2)); barValueList.add(new BarValue(3)); barValueList.add(new BarValue(5));