国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android利用MPAndroidChart繪制曲線圖表的基礎教程

2019-10-22 18:14:31
字體:
來源:轉載
供稿:網友

前言

最近看了一下 Android 上的圖表控件,去年做過一款應用也已上架了,也用到了圖表控件,但是只是按照官方 demo 集成了,并沒有過多的研究。

我最近基本上是面向 Github 編程了,拿別人造好的輪子拿來用,不能直接用的就改改再用,實在不好實現的就勸說產品去改需求,基本這是個套路。

既然是圖表控件,就上 github 一番搜索,關鍵字 chart,按照 java 一篩選,再按照 start 數量排序,由高到低。基本上 start 從高到低的圖表控件就是 MPAndroidChart、hellocharts-android/216815.html">android、WilliamChart、XCL-Charts、EazeGraph、Jgraph 這么幾個了。再排除那些常年不更新的,issues 常年無人問津的一些庫,我基本確定就使用 MPAndroidChart 了,我找其它庫也是這么個套路。所以日常工作就是逛 github,看到中意的就 star make 一下,這和逛淘寶是一個道理[yahch]。

話不多說,先看一下最終效果。

android,曲線圖表,繪制曲線圖,mpandroidchart,曲線圖

MPAndroidChart 的官方文檔可以說是非常詳細了,基本上只要照著來就行了。

方法如下

第一步是 Gradle 引用和控件使用:

allprojects { repositories { maven { url "https://jitpack.io" } }}

基本上很多項目都是通過通過 maven 官方和 jitpack了,沒什么好說的。

dependencies {implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'}

我這里只用到了折線圖,其它還有很多種類的圖表,把項目 clone 下來跑一遍就知道了。

<com.github.mikephil.charting.charts.LineChart android:id="@+id/lineChart1" android:layout_width="match_parent" android:layout_height="150dp"android:layout_marginTop="10dp"></com.github.mikephil.charting.charts.LineChart>

第二步是構建要顯示的數據。

ArrayList<Entry> entryArrayList = new ArrayList<>();for (int i = 0; i < chartDataBean.Altitudes.length; i++) { Entry entry = new Entry(i, (float) chartDataBean.Altitudes[i]); entryArrayList.add(entry);}//yahch

Entry 的兩個參數 x,y 都是 float 類型的,我開始以為都表示 x,y 軸的值,但是想想若是 x 軸不是數值那 float 類型也表示不了,其實這個 x 軸的 float 類型的值就是 x 軸的下標了。

在折線圖表中,一個線條就是一個 LineDataSet ,構建線條,也很簡單。就是一通設置,都是按照字面意思了。

LineDataSet lineDataSet = new LineDataSet(entryArrayList, "demo");lineDataSet.setDrawCircles(false);lineDataSet.setDrawFilled(true);lineDataSet.setDrawValues(false);if (Utils.getSDKInt() >= 18) { Drawable drawable = ContextCompat.getDrawable(activity, R.drawable.chart_bg); lineDataSet.setFillDrawable(drawable);} else { lineDataSet.setFillColor(Color.BLACK);}lineDataSet.setColor(Color.parseColor("#7093C9"));lineDataSet.setLineWidth(2f);lineDataSet.setDrawHighlightIndicators(false);lineDataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER);// yahch

LineChart 設置數據方法是 LineChart.setData(LineData lineData) ,所以還要構造一個 LineData 。

LineData lineData = new LineData(lineDataSet);

假如我們有需求需要繪制一條平均刻線,可以使用 LimitLine。

LimitLine avgLine = new LimitLine(123f);avgLine.setLineColor(Color.parseColor("#FFFFFF"));lineChart1.getAxisLeft().addLimitLine(avgLine);

作為靈魂畫手,我當時就畫了一幅圖。

android,曲線圖表,繪制曲線圖,mpandroidchart,曲線圖

然后點擊全屏橫向顯示怎么個做法呢,很簡單,這個并不是非要在當前的 Activity 中橫向顯示這個圖表,重新開一個 Activity 就是了,并在 onCreate 的時候去掉 ActionBar 就行了。

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().hide(); setContentView(R.layout.activity_full_altitude_chart); }//yahch

那怎么橫向呢,在 AndroidManifest.xml 設置這個 Activity 的 screenOrientation 參數為 landscape,強制設置橫向屏幕即可。

OK,安裝上的折線圖表就搞完了,有木有很簡單。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 夹江县| 汶上县| 易门县| 山阳县| 邛崃市| 普陀区| 吴江市| 阿图什市| 新田县| 屯留县| 政和县| 石门县| 通江县| 灯塔市| 禹城市| 武城县| 莫力| 横山县| 自治县| 新田县| 阳原县| 安顺市| 句容市| 漾濞| 邵武市| 深水埗区| 宜城市| 吉木乃县| 吉木萨尔县| 万安县| 澳门| 金山区| 太保市| 彭泽县| 白山市| 太谷县| 重庆市| 会昌县| 清水河县| 祁阳县| 祁东县|