您好,登錄后才能下訂單哦!
前言
昨夜同門云集推杯又換盞,今朝茶涼酒寒豪言成笑談。半生累,盡徒然,碑文完美有誰看,隱居山水之間誓與浮名散。
簡(jiǎn)介
今天給大家?guī)淼氖侵Ц秾毜脑沦~單view的實(shí)現(xiàn),看到標(biāo)題,你可能會(huì)覺得是自定義view的相關(guān)實(shí)現(xiàn),這里可能要讓你失望了,因?yàn)檫@里我們用的是github上的一個(gè)開源項(xiàng)目。
1. 效果圖
2. MPAndroidChart
我們用的是MPAndroidChart打開鏈接來實(shí)現(xiàn)的效果,它可以實(shí)現(xiàn)柱狀圖,餅狀圖等。
使用方法
1. 添加依賴
你可以選擇在build.gradle中添加依賴。
dependencies { compile 'com.github.PhilJay:MPAndroidChart:v3.0.1' }
2. 引入library
當(dāng)然也可以選擇引入library。
3. xml引用
activity_main.xml
<com.github.mikephil.charting.charts.PieChart android:id="@+id/chart_view" android:layout_width="300dp" android:layout_height="300dp" android:layout_centerInParent="true" />
4. MainActivity
public class MainActivity extends AppCompatActivity { private static final float TEXT_SIZE = 18; private PieChart mPieChart; private List<MonthData> mMonthData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPieChart = (PieChart) findViewById(R.id.chart_view); initData(); initPieData(); } private void initData() { mMonthData = new ArrayList<>(); MonthData playing = new MonthData(); playing.setLabel("娛樂"); playing.setValue(213); MonthData pay = new MonthData(); pay.setLabel("消費(fèi)"); pay.setValue(239); MonthData shopping = new MonthData(); shopping.setLabel("網(wǎng)購"); shopping.setValue(682); MonthData mobile = new MonthData(); mobile.setLabel("線下"); mobile.setValue(100); mMonthData.add(playing); mMonthData.add(pay); mMonthData.add(shopping); mMonthData.add(mobile); } private void initPieData() { PieData mPieData = new PieData(); List<PieEntry> mEntry = new ArrayList<>(); String mLabel = "其他"; for (MonthData monthData : mMonthData) { PieEntry entry = new PieEntry(monthData.getValue(), monthData.getLabel()); mEntry.add(entry); } PieDataSet mDataSet = new PieDataSet(mEntry, mLabel); mDataSet.setColors(Color.rgb(60, 179, 113), Color.rgb(255, 69, 0), Color.rgb(255, 185, 15), Color.rgb(30, 144, 255)); mPieData.setDataSet(mDataSet); mPieData.setValueTextSize(TEXT_SIZE); mPieData.setValueTextColor(Color.WHITE); mPieChart.setDescription(new Description()); mPieChart.setData(mPieData); } }
這里,MonthData是我們自己定義的model,而initPieData()方法中的類都是用的MPAndroidChart中提供的,然后我們?cè)龠M(jìn)行簡(jiǎn)單的封裝,并用其提供的api顯示view。
5. MonthData
封裝的model
public class MonthData { private String label; private float value; public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public float getValue() { return value; } public void setValue(float value) { this.value = value; } }
總結(jié)
對(duì)于本次view的實(shí)現(xiàn),雖然我們自己的東西很少,但至少可以讓我們有所提高,做出來總比做不出來的好,也希望你能和我一樣,每天提高一點(diǎn),不為別的,充實(shí)就好。
源碼下載
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。