Android使用MPAndroidChat

参考文档:
https://blog.csdn.net/u013184970/article/details/52095170
https://blog.csdn.net/cen_yuan/article/details/52204281
注意:
在要使用的module的build.gradle添加:
dependencies {
compile ‘com.github.PhilJay:MPAndroidChart:v3.0.0-beta1’
}
与compile 'com.github.PhilJay:MPAndroidChart:v2.2.5’有些不同!
案例使用的是2.2.5

一、说明

bulid.gradle(project)中添加
allprojects {
repositories {
jcenter()
maven { url “https://jitpack.io” }
}
}
bulid.gradle(app)中添加
dependencies {
compile ‘com.github.PhilJay:MPAndroidChart:v2.2.5’
}

二、XML代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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:orientation="vertical"
    tools:context="com.zjs.mpandroidchart.MainActivity">

    <com.github.mikephil.charting.charts.PieChart
        android:id="@+id/consume_pie_chart"
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp">
    </com.github.mikephil.charting.charts.PieChart>
    <TextView
        android:id="@+id/botton_text"
        android:textSize="25dp"
        android:textColor="#f00"
        android:text=""
        android:gravity="center_horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

三、activity代码

package com.zjs.mpandroidchart;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.DisplayMetrics;
import android.widget.TextView;

import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.formatter.ValueFormatter;
import com.github.mikephil.charting.utils.ViewPortHandler;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    public PieChart mChart;
    private TextView mText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mChart = (PieChart) findViewById(R.id.consume_pie_chart);
//        初始化饼状图数据类
        PieData mpieData = getPieData();
        mText = (TextView) findViewById(R.id.botton_text);
        mText.setText("全年消费情况");
        showMchat(mChart, mpieData);


    }

    private void showMchat(PieChart pieChart, PieData pieData) {
//        设置饼状图中心透明
        pieChart.setHoleColor(Color.TRANSPARENT);
//        //设置描述
//        pieChart.setDescription("全年消费情况");
//        //设置描述字体大小
//        pieChart.setDescriptionTextSize(50f);
//        //设置描述颜色
//        pieChart.setDescriptionColor(Color.RED);
//        //设置描述字体
//        pieChart.setDescriptionTypeface(Typeface.DEFAULT);
//       pieChart.setDescriptionPosition(666,1300);

//          设置饼状图的半径
        pieChart.setHoleRadius(60f);
//        饼状图添加文字
        pieChart.setDrawHoleEnabled(true);
        pieChart.setCenterText("家庭支出");
        pieChart.setCenterTextSize(26f);
        pieChart.setCenterTextColor(Color.RED);

//        初始选择角度
        pieChart.setRotationAngle(90);
//        设置手动可以旋转
        pieChart.setRotationEnabled(true);
//        设置百分比显示
        pieChart.setUsePercentValues(true);
        pieChart.setData(pieData);
//        设置比例图
        Legend mlegend = pieChart.getLegend();
        mlegend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART);
        mlegend.setTextSize(15);
        mlegend.setTextColor(Color.RED);
        mlegend.setXEntrySpace(7f);
        mlegend.setYEntrySpace(5f);

//        初始动画
        pieChart.animateXY(1000, 1000);


    }

    private PieData getPieData() {
//      衣食住行以及其他
        ArrayList<String> xValues = new ArrayList<>();
        xValues.add("衣");
        xValues.add("食");
        xValues.add("住");
        xValues.add("行");
        xValues.add("其他");
        ArrayList<Entry> yValues = new ArrayList<>();
        float y1 = 10;
        float y2 = 20;
        float y3 = 25;
        float y4 = 40;
        float y5 = 5;
        yValues.add(new Entry(y1, 0));
        yValues.add(new Entry(y2, 1));
        yValues.add(new Entry(y3, 2));
        yValues.add(new Entry(y4, 3));
        yValues.add(new Entry(y5, 4));
//        PieDataSet pieDataSet = new PieDataSet(yValues, "2018年家庭支出");
        PieDataSet pieDataSet = new PieDataSet(yValues, "");
        pieDataSet.setSliceSpace(1f);
        ArrayList<Integer> colour = new ArrayList<>();
//      饼状图颜色
        colour.add(Color.RED);
        colour.add(Color.BLUE);
        colour.add(Color.YELLOW);
        colour.add(Color.GRAY);
        colour.add(Color.GREEN);
        pieDataSet.setColors(colour);
        pieDataSet.setValueTextColor(Color.BLACK);
        pieDataSet.setValueTextSize(25);
        pieDataSet.setValueFormatter(new ValueFormatter() {
            @Override
            public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
                return "" + (int) value + "%";
            }
        });
        DisplayMetrics metrics = getResources().getDisplayMetrics();
        float px = 5 * (metrics.densityDpi / 180f);
        pieDataSet.setSelectionShift(px);
        PieData pieData = new PieData(xValues, pieDataSet);
        return pieData;
    }
}

4、效果图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值