//数据源
//设置一页最大显示个数为6,超出部分就滑动
//显示的时候是按照多大的比率缩放显示,1f表示不放大缩小
float ratio = 1f;
if (count >= 6){
ratio = (float) count/(float) 6;
mChart.moveViewToX(count-1);
}
/**
* 先将缩放比设置成0后,再去设置你想要的缩放比。
* 若不这样做的话,在当前页面重新加载数据时,你所设置的缩放比会失效,并且出现你意向不到的显示问题。
* 如果你的图表只在页面加载一次的话不需要这么做。
*/
mChart.zoom(0,1f,0,0);
mChart.zoom(ratio,1f,0,0);
ArrayList<Entry> yVals1 = new ArrayList<Entry>();
for (int i = 0; i < measureRecordBeans.size(); i++) {
float mult = range;
float val = (float) (Math.random() * mult* 0.01) + 37;
yVals1.add(new Entry(i +0.3f, Float.parseFloat(measureRecordBeans.get(i).getCheckValue1()),getResources().getDrawable(R.mipmap.ic_line_spot)));
}
LineDataSet set1;
if (mChart.getData() != null &&
mChart.getData().getDataSetCount() > 0) {
set1 = (LineDataSet) mChart.getData().getDataSetByIndex(0);
set1.setValues(yVals1);
mChart.getData().notifyDataChanged();
mChart.notifyDataSetChanged();
} else {
// create a dataset and give it a type
set1 = new LineDataSet(yVals1, "体温");
set1.setAxisDependency(YAxis.AxisDependency.LEFT);
set1.setColor(getResources().getColor(R.color.bg_line_chart));
set1.setDrawCircleHole(true);
set1.setLineWidth(2f);
set1.setCircleRadius(7f);
// set1.setCircleSize(7f);
set1.setFillAlpha(65);
set1.setHighLightColor(Color.rgb(244, 117, 117));
// set1.setDrawCircleHole(false);
set1.setDrawValues(false);
set1.setFillDrawable(getResources().getDrawable(R.drawable.ic_blue_fill));
set1.setDrawFilled(true);
set1.setDrawIcons(true);
// create a data object with the datasets
LineData data = new LineData(set1);
data.setValueTextColor(Color.WHITE);
data.setValueTextSize(9f);
// set data
mChart.setData(data);
刷新数据发现zoom方法出问题的,一定要注意,在调用LineChart.zoom方法之前一定要设置好LineChart.zoom(0f, 1f, 0, 0);
这样调用LineChart.zoom才会有用