这篇文章是公司的一个报表项目,要求制作统计图,折线图和柱形图,下文只是初级的模版
</pre><pre name="code" class="java">package com.keyi.report;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
import java.util.ArrayList;
/**
* Created by Administrator on 2016/7/8.
*/
public class ShopActivity extends Activity {
private LineChart chart;
private LineData data;
private ArrayList<String> xVals;
private LineDataSet dataSet;
private ArrayList<LineDataSet> dataSets;
private ArrayList<Entry> yVals;
private BarChart barChart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shop);
initData();
}
private int[] mColors = new int[]{
Color.rgb(51, 118, 171),
Color.rgb(89, 199, 250)
};
private void initData() {
dataSets = new ArrayList<>();
xVals = new ArrayList<>();
for (int j = 0; j < 30; j++) {
xVals.add((j + 1) + "");
}
for (int i = 0; i < 2; i++) {
yVals = new ArrayList<>();
for (int j = 0; j < 30; j++) {
yVals.add(new Entry((float) (Math.random() * 1000) + 3, j));
dataSet = new LineDataSet(yVals, "");
}
dataSet.setColor(mColors[i]);
dataSets.add(dataSet);
}
initView(dataSets);
}
private void initView(ArrayList<LineDataSet> dataSets) {
chart = (LineChart) findViewById(R.id.linear);
XAxis xAxis = chart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
Legend mLegend = chart.getLegend();
mLegend.setEnabled(false);
// mLegend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER); //左下边显示
// mLegend.setFormSize(12f);//比例块字体大小
// mLegend.setXEntrySpace(10f);//设置距离饼图的距离,防止与饼图重合
// mLegend.setYEntrySpace(10f);
// mLegend.setTextColor(Color.BLUE);
// mLegend.setTextSize(10f);
// //设置比例块换行...
// mLegend.setWordWrapEnabled(true);
// mLegend.setForm(Legend.LegendForm.SQUARE);//设置比例块形状,默认为方块
data = new LineData(xVals, dataSets);
data.setValueTextColor(Color.rgb(255, 0, 102));
data.setValueTextSize(10);
chart.setDoubleTapToZoomEnabled(false);
chart.setData(data);
chart.getAxisRight().setEnabled(false);
chart.animateY(0);
chart.setGridBackgroundColor(Color.WHITE);
chart.setDescription("单位:元");
barChart = (BarChart) findViewById(R.id.linear1);
barChart.setBackgroundColor(Color.WHITE);
barChart.setDoubleTapToZoomEnabled(false);
barChart.setDrawBarShadow(false);
barChart.getAxisRight().setEnabled(false);
XAxis xAxis1 = barChart.getXAxis();
xAxis1.setPosition(XAxis.XAxisPosition.BOTTOM);
ArrayList<String> xValues = new ArrayList<String>();
for (int i = 0; i < 12; i++) {
xValues.add((i + 1) + "月");
}
ArrayList<BarEntry> yValues = new ArrayList<BarEntry>();
int mult = 10000;
for (int i = 0; i < 12; i++) {
float val1 = (float) (Math.random() * mult) + mult / 2;
float val2 = (float) (Math.random() * mult) + mult / 2;
yValues.add(new BarEntry(new float[]{val1, val2}, i));
}
// y轴的数据集合
BarDataSet barDataSet = new BarDataSet(yValues, "");
barDataSet.setColors(getColors());
ArrayList<BarDataSet> barDataSets = new ArrayList<BarDataSet>();
barDataSets.add(barDataSet); // add the datasets
Legend mLegend1 = barChart.getLegend();
mLegend1.setEnabled(false);
BarData barData = new BarData(xValues, barDataSets);
barChart.setDescriptionColor(Color.parseColor("#FF02BAFF"));
barChart.setDescription("单位:元");
barChart.setData(barData);
}
private int[] getColors() {
int stacksize = 2;
// have as many colors as stack-values per entry
int[] colors = new int[stacksize];
colors[1] = Color.rgb(21, 112, 188);
colors[0] = Color.rgb(8, 31, 93);
return colors;
}
}
</pre><pre name="code" class="java">XML布局如下:
<pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f0f0f0"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f0f0f0"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#367aaa"
android:gravity="center"
android:text="店铺概况"
android:textColor="#fff"
android:textSize="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="10dp"
android:text="店铺概况"
android:textColor="#666666"
android:textSize="15dp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:gravity="right"
android:text="2016年7月8日"
android:textColor="#666666"
android:textSize="13dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="34dp"
android:layout_marginTop="8dp"
android:background="#cfdbe7"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:textColor="#666666"
android:textSize="15dp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="销售额"
android:textColor="#666666"
android:textSize="15dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="成交额"
android:textColor="#666666"
android:textSize="15dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="34dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:paddingLeft="20dp"
android:text="本日"
android:textColor="#666666"
android:textSize="15dp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="19,396"
android:textColor="#666666"
android:textSize="15dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="286"
android:textColor="#666666"
android:textSize="15dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="34dp"
android:background="#f6f6f6"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:paddingLeft="20dp"
android:text="昨日"
android:textColor="#666666"
android:textSize="15dp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="16,396"
android:textColor="#666666"
android:textSize="15dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="213"
android:textColor="#666666"
android:textSize="15dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="34dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:paddingLeft="20dp"
android:text="本月"
android:textColor="#666666"
android:textSize="15dp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="19,396"
android:textColor="#666666"
android:textSize="15dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="286"
android:textColor="#666666"
android:textSize="15dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="34dp"
android:background="#f6f6f6"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:paddingLeft="20dp"
android:text="上月"
android:textColor="#666666"
android:textSize="15dp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="16,396"
android:textColor="#666666"
android:textSize="15dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="213"
android:textColor="#666666"
android:textSize="15dp" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="30天内销售额和成交额走势"
android:textColor="#666666"
android:textSize="15dp" />
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/linear"
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_marginTop="10dp"></com.github.mikephil.charting.charts.LineChart>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="一年销售额和成交额"
android:textColor="#666666"
android:textSize="15dp" />
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/linear1"
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_marginBottom="20dp"
android:background="#f0f0f0"></com.github.mikephil.charting.charts.BarChart>
</LinearLayout>
</ScrollView>
</LinearLayout>
</pre><pre name="code" class="html">PS:需要导入mpandroidchartlibrary-2-1-6.jar这个JAR包