1. 程式人生 > >安卓圖表庫hellocharts使用介紹

安卓圖表庫hellocharts使用介紹

 

現在HelloCharts支援以下chart型別:

Line chart(cubic lines, filled lines, scattered points)(線圖) 
Column chart(grouped, stacked, negative values)(柱形圖) 
Pie chart(餅圖) 
Bubble chart(泡泡圖) 
Combo chart(columns/lines)(柱圖和線圖的組合圖)

1.新增依賴庫

2.XML添加布局

<lecho.lib.hellocharts.view.LineChartView
        android:id
="@+id/line_chart" android:layout_width="match_parent" android:layout_height="200dp" android:padding="10dp"/>

3.在Activity中實現圖表相關設定

 private LineChartView lineChart;
    //X軸標註
    String[]date = {"10-31","11-31","12-31","1-31","2-31","3-31","4-31","5-31","6-31","7-31"};
    
//圖示的資料點 int[]count = {50,100,100,200,250,300,300,350,400,500}; private List<PointValue>mPointValues = new ArrayList<PointValue>(); private List<AxisValue>mAxisValues = new ArrayList<AxisValue>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_word_progress); lineChart
=(LineChartView)findViewById(R.id.line_chart); getAxisXLable();//獲取X軸的標註 getAxisPoints();//獲取座標點 initLineChart();//初始化 } //設定x軸的顯示 private void getAxisXLable(){ for(int i = 0;i < date.length;i++){ mAxisValues.add(new AxisValue(i).setLabel(date[i])); } } //圖示每個點的顯示 private void getAxisPoints(){ for(int i= 0;i < count.length;i++){ mPointValues.add(new PointValue(i,count[i])); } } //初始化圖示 private void initLineChart(){ Line line = new Line(mPointValues).setColor(Color.parseColor("#90EE90"));//折線顏色 亮綠 List<Line>lines = new ArrayList<Line>(); line.setShape(ValueShape.CIRCLE);//折線圖上每個資料點的形狀 line.setCubic(false);//曲線是否平滑 line.setFilled(true);//是否填充曲線面積 line.setHasLabels(true);//曲線的資料座標是否加上備註 line.setHasLines(true);//是否用線顯示 如果為false 則沒有曲線只有點顯示 line.setHasPoints(true);//是否顯示圓點 如果為false 則沒有原點只有點顯示(每個資料點都是個大的圓點) lines.add(line); LineChartData data = new LineChartData(); data.setLines(lines); //座標軸 Axis axisX = new Axis(); axisX.setHasTiltedLabels(false);//X座標軸字型是斜的顯示還是直的,true是斜的顯示 axisX.setTextColor(Color.GRAY);//字型顏色 // axisX.setName("進步曲線"); axisX.setTextSize(10); axisX.setMaxLabelChars(8);//最多幾個x軸座標 縮放讓X軸上資料的個數7<=x<=mAxisXValues.length axisX.setValues(mAxisValues);//填充X軸的座標名稱 data.setAxisXBottom(axisX);//x軸在底部 axisX.setHasLines(true);//x的分割線 //Y軸是根據資料的大小自動設定y軸上限 Axis axisY = new Axis(); axisY.setName(""); axisY.setTextSize(10); data.setAxisYLeft(axisY);//Y軸設定在左邊 //設定行為屬性,支援縮放滑動以及平移 lineChart.setInteractive(true); lineChart.setZoomType(ZoomType.HORIZONTAL); lineChart.setMaxZoom((float)2);//最多縮放比例 lineChart.setContainerScrollEnabled(true,ContainerScrollType.HORIZONTAL); lineChart.setLineChartData(data); lineChart.setVisibility(View.VISIBLE); //設定x軸顯示資料的個數 //不設定axisX.setMaxLabelChars(int count)這句話,則會自動適配X軸所能顯示的儘量合適的資料個數。 Viewport v = new Viewport(lineChart.getMaximumViewport()); v.left = 0; v.right = 7; lineChart.setCurrentViewport(v); }

原始碼github地址:https://github.com/qht1003077897/hellocharts-line.git

引用自:    https://www.cnblogs.com/huolongluo/p/5988644.html