我想在单击图表上显示 x
和 y
值 . 我遵循了所有步骤,但仍然无法正常工作 . 有什么不对吗?
这是我的代码
LineData data = new LineData(getDataSet());
chart.setData(data);
chart.setDrawMarkerViews(true);
chart.setTouchEnabled(true);
chart.getDescription().setEnabled(false);
chart.setOnChartGestureListener(this);
chart.setHighlightPerTapEnabled(true);
CustomMarkerView mv = new CustomMarkerView(this,R.layout.custom_marker_view_layout);
mv.setChartView(chart);
mv.setOffset(-mv.getMeasuredWidth() / 2, -mv.getMeasuredHeight());
chart.setMarkerView(mv);
chart.setPinchZoom(false);
chart.setDrawGridBackground(false);
以下是我的自定义标记视图的代码
public class CustomMarkerView extends MarkerView {
private TextView tvContent;
public CustomMarkerView(Context context, int layoutResource) {
super(context, layoutResource);
tvContent = (TextView) findViewById(R.id.tvContent);
}
@Override
public void refreshContent(Entry e, Highlight highlight) {
if (e instanceof CandleEntry) {
CandleEntry ce = (CandleEntry) e;
tvContent.setText("" + Utils.formatNumber(ce.getHigh(), 0, true));
} else {
tvContent.setText("" + Utils.formatNumber(e.getY(), 0, true));
}
super.refreshContent(e, highlight);
}
@Override
public MPPointF getOffset() {
return new MPPointF(-(getWidth() / 2), -getHeight());
}
}
3 回答
我使用Toast这样做了 . 为了在我的课堂上实现这一点,我需要实现OnChartValueSelectedListener
在创建图表期间,将选定值的值设置为此类
现在,您需要覆盖onValueSelected并实现一些内容来显示您选择的项目 . 例如Toast:
您的CustomMarkerview未显示,因为您没有突出显示任何值 .
我用
barchart.highlightValue(...);
解决了我的问题 . 请参阅以下代码:不推荐使用setDrawMarkerViews和setMarkerView,可以使用下面的代码: