package com.classic.car.ui.chart;
import com.classic.car.R;
import com.classic.car.entity.ConsumerDetail;
import com.classic.car.utils.DataUtil;
import com.classic.car.utils.Util;
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.data.ChartData;
import java.util.ArrayList;
import java.util.List;
/**
* 应用名称: CarAssistant
* 包 名 称: com.classic.car.ui.chart
*
* 文件描述: TODO
* 创 建 人: 续写经典
* 创建时间: 2017/3/28 18:35
*/
public class BarChartDisplayImpl extends BaseChartDisplayImpl<BarChart, BarData>{
@Override public void init(BarChart chart, boolean touchEnable) {
super.init(chart, touchEnable);
if (touchEnable) {
//图表拖动
chart.setDragEnabled(true);
//打开或关闭对图表所有轴的的缩放
chart.setScaleEnabled(true);
chart.setPinchZoom(true);
chart.setDoubleTapToZoomEnabled(false);
chart.setHighlightFullBarEnabled(false);
}
//超过这个值,不显示value
chart.setMaxVisibleValueCount(MAX_VISIBLE_VALUE_COUNT);
chart.setDrawGridBackground(false);
YAxis leftAxis = chart.getAxisLeft();
leftAxis.setAxisMinimum(MINIMUM_VALUE);
// 网格线以虚线模式绘制
leftAxis.enableGridDashedLine(10f, 10f, 0f);
leftAxis.setTextSize(mAxisSize);
leftAxis.setTextColor(Util.getColor(mAppContext, R.color.gray_dark));
chart.getAxisRight().setEnabled(false);
XAxis xAxis = chart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(false);
xAxis.setTextSize(mAxisSize);
xAxis.setTextColor(Util.getColor(mAppContext, R.color.gray_dark));
chart.getLegend().setEnabled(false);
}
@Override public BarData convert(List<ConsumerDetail> list) {
if (!DataUtil.isEmpty(list)) {
ArrayList<BarEntry> entries = new ArrayList<>();
final int size = list.size();
for (int i = 0; i < size; i++) {
entries.add(new BarEntry(i, list.get(i).getMoney()));
}
BarDataSet ds = new BarDataSet(entries, EMPTY_LABEL);
ds.setValueTextSize(mTextSize);
ds.setColors(Util.getColorTemplate(mAppContext));
return new BarData(ds);
}
return null;
}
@Override ChartData getChartData(BarData barData) {
return barData;
}
}