关于android报表的制作

来源:互联网 发布:画漫画的软件 编辑:程序博客网 时间:2024/06/14 07:23
这篇文章是公司的一个报表项目,要求制作统计图,折线图和柱形图,下文只是初级的模版
</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包



1 0
原创粉丝点击