Hellocharts框架是android的第三方好用的圖表庫(kù)。
1、Gradle導(dǎo)入
compile 'com.github.lecho:hellocharts-android:v1.5.8'
2、因?yàn)槲沂褂玫氖荓ineChartView,其他的類推
初始化工作
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_level);
abilityChart = (LineChartView) findViewById(R.id.abilityChart);
myRankChart = (LineChartView) findViewById(R.id.myRankChart);
getAxisXLables();//獲取X軸標(biāo)注
initTheatLineChart();
}
getAxisLables
//x軸的顯示
private void getAxisXLables(){
for (int i=0;i<date.length;i++){
mAxisXValuesList.add(new AxisValue(i).setLabel(date[i]));
}
}
//初始化abilityLineChart的設(shè)置
private void initTheatLineChart() {
getAxisPoints();//獲取坐標(biāo)點(diǎn)
Line line = new Line(mTheatPointValuesList).setColor(Color.parseColor("#E9967A")).setCubic(true);//折線的顏色
List<Line> lines = new ArrayList<>();
line.setShape(ValueShape.CIRCLE);//折線圖上每個(gè)數(shù)據(jù)點(diǎn)的形狀
line.setCubic(true);//曲線是否平滑
line.setFilled(true);//是否填充曲線的面積
//line.setHasLabels(true);//曲線的數(shù)據(jù)坐標(biāo)是否加上備注
line.setHasLabelsOnlyForSelected(true);//點(diǎn)擊坐標(biāo)顯示數(shù)據(jù)
line.setHasLines(true);//是否用直線顯示
line.setHasPoints(true);//是否顯示原點(diǎn)
lines.add(line);
LineChartData data = new LineChartData();
data.setLines(lines);
//坐標(biāo)軸
Axis axisX = new Axis();//x軸
axisX.setHasTiltedLabels(false);//X軸下面坐標(biāo)軸字體是斜的顯示還是直的顯示,true是斜的顯示
axisX.setTextColor(Color.WHITE);
axisX.setTextColor(Color.parseColor("#336699"));//灰色
axisX.setName("能力曲線");//表格名稱
axisX.setTextSize(20);//設(shè)置字體的大小
axisX.setMaxLabelChars(7);//最多幾個(gè)X軸坐標(biāo),意思就是你的縮放讓X軸上數(shù)據(jù)的個(gè)數(shù)7<=x<=mAxisValues.length
axisX.setValues(mAxisXValuesList);//填充X軸的坐標(biāo)名稱
data.setAxisXBottom(axisX);//X軸在底部
Axis axisY = new Axis();//Y軸
axisY.setName("");//Y軸標(biāo)注
axisY.setHasLines(true);
axisY.setTextSize(11);
axisY.setTextColor(Color.parseColor("#336699"));
data.setAxisYLeft(axisY);//Y軸設(shè)置在左邊
abilityChart.setInteractive(true);
abilityChart.setZoomType(ZoomType.HORIZONTAL);//縮放類型
abilityChart.setMaxZoom((float)3);//縮放比例
abilityChart.setLineChartData(data);
//abilityChart.setVisibility(View.VISIBLE);
Viewport v = new Viewport(abilityChart.getMaximumViewport());
v.left = 0;
v.right = 7;
abilityChart.setCurrentViewport(v);
}
//能力曲線的每個(gè)點(diǎn)的顯示
private void getAxisPoints() {
for (int i=0;i<score.length;i++){
mTheatPointValuesList.add(new PointValue(i,(float)theat[i]));
}
}
String[] date = {"5-23","5-24","5-25","5-26","5-27","5-28","5-29","5-30","5-31","6-1","6-2","6-3"};//X軸的標(biāo)注
double[] theat = {2.3,1.98,2.02,1.68,1.84,1.96,2.10,2.06,2.08,2.11,2.09,2.11};//能力曲線點(diǎn)數(shù)據(jù)
private List<PointValue> mTheatPointValuesList = new ArrayList<>();
private List<AxisValue> mAxisXValuesList = new ArrayList<>();