private void init(final LineChart mChart) {
//右下角描述字体颜色
mChart.setDescriptionColor(Color.WHITE);
// 在chart上的右下角加描述
mChart.setDescription("kg");
// enable value highlighting
mChart.setHighlightEnabled(true);
// enable touch gestures
//设置是否可以触碰
mChart.setTouchEnabled(true);
mChart.setDragDecelerationFrictionCoef(0.9f);
// enable scaling and dragging
mChart.setDragEnabled(true);
mChart.setScaleEnabled(true);
mChart.setDrawGridBackground(false);
mChart.setHighlightPerDragEnabled(true);
// if disabled, scaling can be done on x- and y-axis separately
mChart.setPinchZoom(true);
// 是否可以通过双击放大
mChart.setDoubleTapToZoomEnabled(true);
// set an alternative background color
// mChart.setBackgroundColor(528194);
// mChart.setBackgroundColor(R.color.bg_blue);
mChart.getAxisRight().setEnabled(false);
mChart.animateX(2500);
Typeface tf = Typeface.create(Typeface.SANS_SERIF, Typeface.NORMAL);
// get the legend (only possible after setting data)
Legend l = mChart.getLegend();
// modify the legend ...
l.setForm(LegendForm.CIRCLE);
l.setTypeface(tf);
l.setTextSize(11f);
l.setTextColor(Color.WHITE);
l.setPosition(LegendPosition.BELOW_CHART_LEFT);
XAxis xAxis = mChart.getXAxis();
xAxis.setTypeface(tf);
xAxis.setTextSize(12f);
xAxis.setPosition(XAxisPosition.BOTTOM);
// x轴坐标字体颜色
xAxis.setTextColor(Color.WHITE);
xAxis.setDrawGridLines(false);
// 是否绘制x轴
xAxis.setDrawAxisLine(false);
xAxis.setSpaceBetweenLabels(1);
// Normal line
LimitLine ll1 = null;
ll1 = new LimitLine();
ll1.setLineWidth(0f);
ll1.enableDashedLine(5f, 0f, 0f);
ll1.setLabelPosition(LimitLabelPosition.RIGHT_TOP);
ll1.setTextSize(10f);
ll1.setLineColor(Color.WHITE);
// ll1.setTextColor(Color.BLACK);
//y轴初始化
YAxis leftAxis = mChart.getAxisLeft();
leftAxis.addLimitLine(ll1);
leftAxis.setTypeface(tf);
//y轴字体颜色
leftAxis.setTextColor(Color.WHITE);
//是否绘制y轴
leftAxis.setDrawAxisLine(false);
leftAxis.setAxisMaxValue(150);
// 设置Y轴展示数据范围--最小值
leftAxis.setAxisMinValue(0);
// leftAxis.setAxisMinValue(34f);
//y轴的颜色
leftAxis.setAxisLineColor(Color.WHITE);
leftAxis.setStartAtZero(false);
leftAxis.enableGridDashedLine(10f, 10f, 10f);
// 是否绘制网格线
leftAxis.setDrawGridLines(true);
leftAxis.setGridColor(Color.WHITE);
//图表上点的数据展示 MyMarkView要自己创建
MyMarkView mv = new MyMarkView(this.getActivity());
mChart.setMarkerView(mv);
// 设置图表点击事件, 监听高亮位置
mChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
entry = e;
}
@Override
public void onNothingSelected() {
((HistoryDataActivity) context).changePage(3);
Intent intent = new Intent(
Constant.ActionConstant.ACTION_HISTORY_YEAR);
intent.putExtra("history_year", entry.getXIndex());
context.sendBroadcast(intent);
}
});
setData();
}
private void setData() {
if (yearWeightList == null)
{return;}
ArrayListxVals = new ArrayList();
ArrayListyVals1 = new ArrayList();
for (int i = 0; i < yearWeightList.size(); i++)
{
int num = yearWeightList.get(i);
// xVals.add(i+"");
yVals1.add(new Entry(num, i + 1));
}
//x轴数据 为String类型
xVals.add("");
xVals.add("1");
xVals.add("2");
xVals.add("3");
xVals.add("4");
xVals.add("5");
xVals.add("6");
xVals.add("7");
xVals.add("8");
xVals.add("9");
xVals.add("10");
xVals.add("11");
xVals.add("12");
xVals.add("");
// 创建一个数据集,并给出它的类型
LineDataSet set1 = null;set1 = new LineDataSet(yVals1, "");
set1.setAxisDependency(AxisDependency.LEFT);
// 左下角圆圈颜色 以及图表上连线的颜色
set1.setColor(Color.TRANSPARENT);
// 图表数据圆圈颜色
set1.setCircleColor(Color.WHITE);
set1.setLineWidth(0f);
// 取消数值的显示,如何获取当前数量
int valuesCount = set1.getValueCount();
//图表上的点是否展示数据
set1.setDrawValues(false);
set1.setCircleSize(2f);
set1.setValueTextColor(Color.WHITE);
// 是否可以填充
set1.setDrawFilled(true);
// 填充颜色
set1.setFillColor(ColorTemplate.getHoloBlue());
// 填充透明度
set1.setFillAlpha(45);
// 设置曲线允许平滑 决定是曲线true还是直线false 若为曲线相邻两点连线会发生弯曲
set1.setDrawCubic(true);
// 设置曲线平滑度
set1.setCubicIntensity(0.1f);
set1.setHighLightColor(Color.rgb(244,117, 117));
set1.setDrawCircleHole(false);
ArrayListdataSets = new ArrayList();
dataSets.add(set1);
// create a data object with the datasets
LineData data = new LineData(xVals, dataSets);
// 数据颜色
data.setValueTextColor(Color.WHITE);
data.setValueTextSize(9f);
// set data
mChart.setData(data);
mChart.invalidate();
}