1)
Please add below following repositories and dependencies code to your build.gradle( Module:app ) file and You don’t need to download manually the whole library because after adding below code it will automatically download and install the Mp Android Library into your project.
dependencies {
compile 'com.github.PhilJay:MPAndroidChart:v2.2.4'
}
repositories {
maven { url "https://jitpack.io" }
}
2) XML Code
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="payprocess.charts.Main2Activity">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/piechart"
android:layout_width="match_parent"
android:layout_height="230dp" />
</HorizontalScrollView>
</RelativeLayout>
3) Java Code
public class MainActivity extends AppCompatActivity {
PieChart mChart;
private int[] yValues = {21, 2, 2};
private String[] xValues = {"Present Days", "Absents", "Leaves"};
public static final int[] MY_COLORS = {
Color.rgb(84,124,101), Color.rgb(64,64,64), Color.rgb(153,19,0),
Color.rgb(38,40,53), Color.rgb(215,60,55)
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mChart = (PieChart)findViewById(R.id.piechart);
mChart.setDescription("");
mChart.setRotationEnabled(true);
mChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
// display msg when value selected
if (e == null)
return;
Toast.makeText(MainActivity.this,
xValues[e.getXIndex()] + " is " + e.getVal() + "", Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected() {
}
});
// setting sample Data for Pie Chart
setDataForPieChart();
}
public void setDataForPieChart() {
ArrayList<Entry> yVals1 = new ArrayList<Entry>();
for (int i = 0; i < yValues.length; i++)
yVals1.add(new Entry(yValues[i], i));
ArrayList<String> xVals = new ArrayList<String>();
for (int i = 0; i < xValues.length; i++)
xVals.add(xValues[i]);
// create pieDataSet
PieDataSet dataSet = new PieDataSet(yVals1, "");
dataSet.setSliceSpace(5f);
dataSet.setSelectionShift(5);
// adding colors
ArrayList<Integer> colors = new ArrayList<Integer>();
// Added My Own colors
for (int c : MY_COLORS)
colors.add(c);
dataSet.setColors(colors);
// create pie data object and set xValues and yValues and set it to the pieChart
PieData data = new PieData(xVals, dataSet);
// data.setValueFormatter(new DefaultValueFormatter());
// data.setValueFormatter(new PercentFormatter());
data.setValueFormatter(new MainActivity.MyValueFormatter());
data.setValueTextSize(11f);
data.setValueTextColor(Color.WHITE);
mChart.setData(data);
// undo all highlights
mChart.highlightValues(null);
// refresh/update pie chart
mChart.invalidate();
// animate piechart
mChart.animateXY(1400, 1400);
// Legends to show on bottom of the graph
Legend l = mChart.getLegend();
l.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER);
l.setXEntrySpace(7);
l.setYEntrySpace(5);
}
public class MyValueFormatter implements ValueFormatter {
private DecimalFormat mFormat;
public MyValueFormatter() {
mFormat = new DecimalFormat("###,###,##0"); // use one decimal if needed
}
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
// write your logic here
return mFormat.format(value) + ""; // e.g. append a dollar-sign
}
}
}
1 comment:
Nice Edition thanks for sharing
Android Online Training Bangalore
Post a Comment