android 開源圖表庫MPChart最簡單使用方法示例教程Demo

jopen 8年前發布 | 232K 次閱讀 Android開發 移動開發

MPChart是android上一款強大的圖表開源庫,他可以輕松的繪制折線圖 柱狀圖 餅狀圖等等..


由于項目需要用到,于是去百度了一番,發現先有的demo基本上沒有講解,新手看起來會很復雜。于是想寫一篇最簡單的使用方法。


老規矩,先上效果圖



可以看出來我用MPChart繪制了一個折線圖,支持手勢縮放 很簡單好用!

廢話不多說,直接開始今天的內容:

一、需要原料:

1.MPChart的庫。

2.Android Studio

3.程序猿一只

二、步驟:

1.先從git上面clone下來所需要的項目依賴,復制MPChartLib到我們的項目中(與app)同級。

      2.打開settings.gradle 輸入

include 'MPChartLib'
打開app.build.gradle 輸入

compile project (':MPChartLib')

3.在布局文件中加入LineChart

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.wingsofts.mpchartdemo.MainActivity">

   <com.github.mikephil.charting.charts.LineChart
       android:id="@+id/lineChart"
       android:layout_width="match_parent"
       android:layout_height="match_parent">


   </com.github.mikephil.charting.charts.LineChart>
</RelativeLayout>
4.在代碼中操作數據集。這里介紹一下涉及到的類

XAxis 為 X軸的類

Entry 為每個點的類

DataSet 一組Y軸上面的數據

Linedata 整個Y軸的數據

有了這些涉及到的類,在看代碼應該很好理解了,直接上代碼:

public class MainActivity extends AppCompatActivity {
    private LineChart mLineChart;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mLineChart = (LineChart) findViewById(R.id.lineChart);

        XAxis xAxis = mLineChart.getXAxis();

        //設置X軸的文字在底部
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);

        //設置描述文字
        mLineChart.setDescription("7天走勢圖");

        //模擬一個x軸的數據  12/1 12/2 ... 12/7
        ArrayList<String> xValues = new ArrayList<>();
        for (int i = 1; i < 8; i++) {
            xValues.add("12/" + i);
        }

        Log.e("wing", xValues.size() + "");


        //模擬一組y軸數據(存放y軸數據的是一個Entry的ArrayList) 他是構建LineDataSet的參數之一

        ArrayList<Entry> yValue = new ArrayList<>();
        for (int i = 0; i < 7; i++) {
            yValue.add(new Entry(i, i));
        }

        //構建一個LineDataSet 代表一組Y軸數據 (比如不同的彩票: 七星彩  雙色球)
        LineDataSet dataSet = new LineDataSet(yValue, "雙色球");

        //模擬第二組組y軸數據(存放y軸數據的是一個Entry的ArrayList) 他是構建LineDataSet的參數之一

        ArrayList<Entry> yValue1 = new ArrayList<>();

        yValue1.add(new Entry(7, 0));
        yValue1.add(new Entry(17, 1));
        yValue1.add(new Entry(3, 2));
        yValue1.add(new Entry(5, 3));
        yValue1.add(new Entry(4, 4));
        yValue1.add(new Entry(3, 5));
        yValue1.add(new Entry(7, 6));


        Log.e("wing", yValue.size() + "");

        //構建一個LineDataSet 代表一組Y軸數據 (比如不同的彩票: 七星彩  雙色球)

        LineDataSet dataSet1 = new LineDataSet(yValue1, "七星彩");
        dataSet1.setColor(Color.BLACK);
        //構建一個類型為LineDataSet的ArrayList 用來存放所有 y的LineDataSet   他是構建最終加入LineChart數據集所需要的參數
        ArrayList<LineDataSet> dataSets = new ArrayList<>();

        //將數據加入dataSets
        dataSets.add(dataSet);
        dataSets.add(dataSet1);

        //構建一個LineData  將dataSets放入
        LineData lineData = new LineData(xValues, dataSets);

        //將數據插入
        mLineChart.setData(lineData);


    }
}

好了,快運行一下看看效果吧,其他的折線圖啊等等,都是一樣的,只需要比著葫蘆畫瓢就可以了。

如果你有興趣還可以看看簡易圖表 自定義View 系列

求關注 求評論 求star

https://github.com/githubwing

來自: http://blog.csdn.net/wingichoy/article/details/50428246

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!