MPAndroidChart之餅圖PieChart

前段時間沒Android端的需求,所以在學前端蜀变,所以也差不多有一個多月沒更新文章了级乐,前端我是新手也基本沒法寫什么文章魂迄,只能總結一些比較基礎的內容,然后現(xiàn)在暫時Android這邊又開始了新的版本開發(fā)乌助,所以近期應該會寫些新文章萌京。

然后這次講講MPAndroidChart的PieChart焰轻,我之前也沒想到會碰上要開發(fā)統(tǒng)計圖需求的情況数苫,然后找了一下發(fā)現(xiàn)這個MPAndroidChart是挺火的聪舒。
https://github.com/PhilJay/MPAndroidChart
這個框架可以用來開發(fā)統(tǒng)計圖,而且這個框架的功能挺龐大的虐急。那為什么這么多統(tǒng)計圖只講餅圖PieChart呢箱残,因為其它我都暫時用不上,只用到了PieChart止吁,會用這個之后被辑,其它的統(tǒng)計圖用法其實差不多。

這里我主要只拿一個例子來講敬惦,不總結pieChart的API

一.導入MPAndroidChart依賴并創(chuàng)建

這個按照gayhub上的來弄就行了

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}
dependencies {
    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
}

官網這個implementation 什么鬼我不知道盼理,我這邊不識別,換成compile就行了俄删。

<com.github.mikephil.charting.charts.PieChart
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:id="@+id/pic_chart"
        >
 </com.github.mikephil.charting.charts.PieChart>

二.設置屬性宏怔,讓圖顯示

如果僅僅按照上面這樣弄,圖片是顯示不出的抗蠢,肯定要寫一些代碼嘛举哟,那要寫什么。

寫什么一般可以百度迅矛,但是不是我黑百度妨猩,百度找的文章,大多數時候都讓人心累秽褒,就算你找到合適的文章壶硅,寫的肯定也不完整,就像我的文章一樣销斟,肯定寫的內容是不完整的庐椒,所以最好是看官方的文檔,所以最好是看官方的文檔蚂踊,所以最好是看官方的文檔约谈,重要的事情說3遍。

但是并不是所有框架的文檔對新人都這么友好犁钟,我也是踩著坑過來的棱诱,所以為了幫助一些和我一樣的萌新,我多花時間講詳細點涝动。

在gayhub中可以找到這個


image.png

那就沒錯了迈勋,很多好的框架都這樣,把文檔寫在wiki中醋粟,為什么我也不知道靡菇,我沒經常在gayhub發(fā)文章重归。然后跳到wiki去看使用文檔。
一眼看去全英文厦凤,我也看不懂鼻吮,瀏覽器翻譯一下可以看看目錄怎么寫


image.png

那就有點明朗了,先看入門泳唠,然后按照官方demo去懟代碼狈网。發(fā)現(xiàn)只顯示一種顏色,可以看看設置數據和設置顏色

        List<PieEntry> strings = new ArrayList<>();
        strings.add(new PieEntry(30f,"aaa"));
        strings.add(new PieEntry(70f,"bbb"));

        PieDataSet dataSet = new PieDataSet(strings,"Label");

        ArrayList<Integer> colors = new ArrayList<Integer>();
        colors.add(getResources().getColor(R.color.login_red));
        colors.add(getResources().getColor(R.color.blue));
        dataSet.setColors(colors);

        PieData pieData = new PieData(dataSet);
        pieData.setDrawValues(true);

        picChart.setData(pieData);
        picChart.invalidate();

最終可以得到結果


image.png

發(fā)現(xiàn)其實就這么簡單笨腥,我覺得官方的文檔講得還是挺清晰的,如果還是看不懂勇垛,可以去參考官方的demo也行脖母。

其實這樣已經完成了預覽的效果,但是有幾點需要改的地方
(1)把中間空心變成實心
(2)把數字換成百分比
(3)右下角的Description Label去掉

首先去除右下角的label

發(fā)現(xiàn)在文檔的11.一般設置和樣式中能找到

image.png

但是發(fā)現(xiàn)我的setDescription方法傳的值要求是Description對象而不是String闲孤,說明文檔內容沒有更新谆级,這時可以瀏覽這個類的源碼,很快你就能發(fā)現(xiàn)改變這個Label的方法

        Description description = new Description();
        description.setText("");
        picChart.setDescription(description);
把空心變成實心

找到文檔的第12.特定的設置和樣式

image.png

先設成半徑為零

picChart.setHoleRadius(0f);

發(fā)現(xiàn)內圈還有個半透明的讼积,再設置半透明的半徑為0

picChart.setTransparentCircleRadius(0f);
把數字變成百分比

一聽就知道需要看9.格式化數據值(ValueFormatter)這個肥照,再配合之前的文檔,可以這樣寫

        pieData.setDrawValues(true);
        pieData.setValueFormatter(new PercentFormatter());

順便再把字體變大些

pieData.setValueTextSize(12f);

修改后可以得到結果


image.png

三.總結

我這主要說怎么去看文檔勤众,至于內容我覺得列舉出來不完的舆绎,而且新功能一出,能隨時更新的就是文檔们颜,所以最好還是看文檔吕朵。但是文檔是講全部的,如果你想比如只用餅圖窥突,想只找它相關的方法調用努溃,可以百度,但是如果你以后還要用的話還去百度阻问?不如花點時間看看文檔的結構梧税,以后用時能方便的找到相應的地方。

然后你做了餅圖這個功能之后你會發(fā)現(xiàn)主要是用到三個類
(1)展示的樣式的類PieChart
(2)設置數據的類xxxDataSet
(3)數據展示相關的類xxxData
然后肯定其它圖的用法差不多称近,所以會一個基本其它就很快了第队。

還有一點我想說的是,不要把配置這個view的代碼直接寫在頁面中煌茬,這樣耦合性高復用性低斥铺,可以寫的viewmodel也行,寫個manager也行坛善,寫個helper類也行晾蜘,寫個adapter也行......

最后貼下實心餅的效果邻眷,這篇就算是結束了

        List<PieEntry> strings = new ArrayList<>();
        strings.add(new PieEntry(30f,"aaa"));
        strings.add(new PieEntry(70f,"bbb"));
        PieDataSet dataSet = new PieDataSet(strings,"Label");

        ArrayList<Integer> colors = new ArrayList<Integer>();
        colors.add(getResources().getColor(R.color.login_red));
        colors.add(getResources().getColor(R.color.blue));
        dataSet.setColors(colors);

        PieData pieData = new PieData(dataSet);
        pieData.setDrawValues(true);
        pieData.setValueFormatter(new PercentFormatter());
        pieData.setValueTextSize(12f);

        picChart.setData(pieData);
        picChart.invalidate();

        Description description = new Description();
        description.setText("");
        picChart.setDescription(description);
        picChart.setHoleRadius(0f);
        picChart.setTransparentCircleRadius(0f);
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市剔交,隨后出現(xiàn)的幾起案子肆饶,更是在濱河造成了極大的恐慌,老刑警劉巖岖常,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驯镊,死亡現(xiàn)場離奇詭異,居然都是意外死亡竭鞍,警方通過查閱死者的電腦和手機板惑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來偎快,“玉大人冯乘,你說我怎么就攤上這事∩辜校” “怎么了裆馒?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長丐怯。 經常有香客問我喷好,道長,這世上最難降的妖魔是什么读跷? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任梗搅,我火速辦了婚禮,結果婚禮上舔亭,老公的妹妹穿的比我還像新娘些膨。我一直安慰自己,他們只是感情好钦铺,可當我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布订雾。 她就那樣靜靜地躺著,像睡著了一般矛洞。 火紅的嫁衣襯著肌膚如雪洼哎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天沼本,我揣著相機與錄音噩峦,去河邊找鬼。 笑死抽兆,一個胖子當著我的面吹牛识补,可吹牛的內容都是我干的。 我是一名探鬼主播辫红,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼凭涂,長吁一口氣:“原來是場噩夢啊……” “哼祝辣!你這毒婦竟也來了?” 一聲冷哼從身側響起切油,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蝙斜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后澎胡,有當地人在樹林里發(fā)現(xiàn)了一具尸體孕荠,經...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年攻谁,在試婚紗的時候發(fā)現(xiàn)自己被綠了稚伍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡巢株,死狀恐怖槐瑞,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情阁苞,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布祠挫,位于F島的核電站那槽,受9級特大地震影響,放射性物質發(fā)生泄漏等舔。R本人自食惡果不足惜骚灸,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望慌植。 院中可真熱鬧甚牲,春花似錦、人聲如沸蝶柿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽交汤。三九已至雏赦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芙扎,已是汗流浹背星岗。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留戒洼,地道東北人俏橘。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像圈浇,于是被迫代替她去往敵國和親寥掐。 傳聞我的和親對象是個殘疾皇子靴寂,可洞房花燭夜當晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,275評論 25 707
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件曹仗、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,118評論 4 61
  • 我昨天晚上寫了一篇文字榨汤,其費力之程度不下于跑一場馬拉松比賽。 馬拉松只要堅持怎茫,哪怕是走收壕,也能走到終點」旄颍可是我的文字...
    夏以狐閱讀 594評論 0 0
  • 不要跟我說晚安蜜宪,我會以為我們有可能 生活一直在強奸著我的自由,即使我言不由衷祥山,還是赤裸裸的把自己賣了 每當我有勇氣...
    東豫海閱讀 228評論 0 0
  • 文/Nichole 文學/情感 見賢思齊焉缝呕,見不賢而內自省也澳窑。 ——《論語》 意思是,見到有人在某一方面有超過自己...
    翁萍閱讀 442評論 1 0