1.在项目的build.gradle下面的allprojects里面添加
maven { url “https://jitpack.io” } 这行代码
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
}
2.在app的build.gradle添加MPAndroidChart依赖
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.0-beta1'
3.activity_main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/consume_pie1_chart"
android:layout_width="520dp"
android:layout_height="520dp"
/>
</LinearLayout>
4.MainActivity.java部分
package com.example.a86156.bingtu;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.github.mikephil.charting.animation.Easing;
import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.data.PieEntry;
import com.github.mikephil.charting.formatter.PercentFormatter;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
PieChart pieChart1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pieChart1 = findViewById(R.id.consume_pie1_chart);
bingTu1();
}
private void bingTu1() {
pieChart1.setUsePercentValues(true); //设置为显示百分比
pieChart1.setDescription("当天时间分配表");//设置描述
pieChart1.setDescriptionTextSize(20f);
// pieChart1.setExtraOffsets(5, 5, 5, 5);//设置饼状图距离上下左右的偏移量
pieChart1.setDrawCenterText(true); //设置可以绘制中间的文字
pieChart1.setCenterTextColor(Color.BLACK); //中间的文本颜色
pieChart1.setCenterTextSize(18); //设置中间文本文字的大小
pieChart1.setDrawHoleEnabled(true); //绘制中间的圆形
pieChart1.setHoleColor(Color.WHITE);//饼状图中间的圆的绘制颜色
pieChart1.setHoleRadius(40f);//饼状图中间的圆的半径大小
pieChart1.setTransparentCircleColor(Color.BLACK);//设置圆环的颜色
pieChart1.setTransparentCircleAlpha(100);//设置圆环的透明度[0,255]
pieChart1.setTransparentCircleRadius(40f);//设置圆环的半径值
pieChart1.setRotationEnabled(false);//设置饼状图是否可以旋转(默认为true)
pieChart1.setRotationAngle(10);//设置饼状图旋转的角度
Legend l = pieChart1.getLegend(); //设置比例图
l.setMaxSizePercent(100);
l.setTextSize(12);
l.setPosition(Legend.LegendPosition.RIGHT_OF_CHART_CENTER);//设置每个tab的显示位置(这个位置是指下图右边小方框部分的位置 )
l.setXEntrySpace(10f);
l.setYEntrySpace(5f);//设置tab之间Y轴方向上的空白间距值
l.setYOffset(0f);
//饼状图上字体的设置
pieChart1.setDrawEntryLabels(false);//设置是否绘制Label
// pieChart1.setEntryLabelColor(Color.BLACK);//设置绘制Label的颜色
pieChart1.setEntryLabelTextSize(23f);//设置绘制Label的字体大小
// pieChart1.animateY(100, Easing.EasingOption.EaseInQuad);//设置Y轴上的绘制动画
//设置数据百分比和描述
ArrayList<PieEntry> pieEntries = new ArrayList<PieEntry>();
pieEntries.add(new PieEntry(15, "游戏"));
pieEntries.add(new PieEntry(20, "做家务"));
pieEntries.add(new PieEntry(15, "逛街"));
pieEntries.add(new PieEntry(30, "上网"));
pieEntries.add(new PieEntry(10, "打球"));
pieEntries.add(new PieEntry(10, "其他"));
String centerText = "时间分配";
pieChart1.setCenterText(centerText);//设置圆环中间的文字
PieDataSet pieDataSet = new PieDataSet(pieEntries, "");
ArrayList<Integer> colors = new ArrayList<>();
// 饼图颜色
colors.add(Color.rgb(0, 255, 0));
colors.add(Color.rgb(255, 255, 0));
colors.add(Color.rgb(255, 0, 0));
colors.add(Color.rgb(255, 0, 255));
colors.add(Color.rgb(244, 164, 96));
colors.add(Color.rgb(30, 144, 255));
pieDataSet.setColors(colors);
pieDataSet.setSliceSpace(0f);//设置选中的Tab离两边的距离
pieDataSet.setSelectionShift(5f);//设置选中的tab的多出来的
PieData pieData = new PieData();
pieData.setDataSet(pieDataSet);
//各个饼状图所占比例数字的设置
pieData.setValueFormatter(new PercentFormatter());//设置%
pieData.setValueTextSize(18f);
pieData.setValueTextColor(Color.BLUE);
pieChart1.setData(pieData);
pieChart1.highlightValues(null);
pieChart1.invalidate();
}
}