开源控件MPAndroidChart的使用

本文介绍了如何利用开源库MPAndroidChart在Android应用中展示历史电量变化。通过设置视图偏移、禁用Y轴显示以及执行动画来定制图表效果。详细代码展示了配置过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开源控件MPAndroidChart的使用:

这里写图片描述
主要是实现的一个历史电量的变化。
下面直接代码讲解:
使用的是Githup上的开源控件地址是:https://github.com/PhilJay/MPAndroidChart

mChart.setViewPortOffsets(55, 55, 55, 55); //设置视图的偏移量
如果不对视图设置偏移最左边和最右边的的标注只能显示一半。
YAxis y = mChart.getAxisLeft();
y.setEnabled(false); //设置y轴不显示
mChart.animateXY(2000, 2000); //设置动画x轴和y轴为2秒中
set1.setFillColor(Color.parseColor(“#e6e6e6”)); //设置填充的北京色
下面是全部代码:

private void initElectricity() {
mChart = (LineChart) findViewById(R.id.chart1);
mChart.setViewPortOffsets(55, 55, 55, 55); //设置视图的偏移量
mChart.setDescription(“”);
mChart.setTouchEnabled(false);
// // enable scaling and dragging
mChart.setDragEnabled(false);
mChart.setScaleEnabled(true);

    mChart.setPinchZoom(true);
    mChart.setDrawGridBackground(false);
    tf = Typeface.createFromAsset(getAssets(), "OpenSans-Regular.ttf");
    XAxis x = mChart.getXAxis();
    x.setDrawGridLines(false);
    x.setPosition(XAxis.XAxisPosition.BOTTOM);
    x.setSpaceBetweenLabels(2);
    x.setTextColor(Color.WHITE);
    x.setTextSize(14);
    x.setEnabled(true);
    YAxis y = mChart.getAxisLeft();
    y.setEnabled(false);

    mChart.getAxisRight().setEnabled(false);
    setData(12, 100);
    mChart.getLegend().setEnabled(false);
    mChart.animateXY(2000, 2000);
    ArrayList<LineDataSet> sets = (ArrayList<LineDataSet>) mChart.getData()
            .getDataSets();

    for (LineDataSet set : sets) {
        if (set.isDrawFilledEnabled()) {
            set.setDrawFilled(false);
            set.setDrawCircles(false);
        } else {
            set.setDrawFilled(true);
            set.setDrawCircles(true);
        }

    }
    for (DataSet<?> set : mChart.getData().getDataSets())
        set.setDrawValues(!set.isDrawValuesEnabled());
    mChart.invalidate();
}
private void setData(int count, float range) {

    ArrayList<String> xVals = new ArrayList<String>();
    for (int i = 0; i < count; i++) {
        xVals.add((i + 1) + "月");
    }

    ArrayList<Entry> vals1 = new ArrayList<Entry>();

    vals1.add(new Entry(89, 0));
    vals1.add(new Entry((float) 63.2, 1));
    vals1.add(new Entry((float) 73.4, 2));
    vals1.add(new Entry((float) 65, 3));
    vals1.add(new Entry((float) 75, 4));
    vals1.add(new Entry((float) 78.9, 5));
    vals1.add(new Entry((float) 88.9, 6));
    vals1.add(new Entry((float) 98.9, 7));
    vals1.add(new Entry((float) 78.9, 8));
    vals1.add(new Entry((float) 38.9, 9));
    vals1.add(new Entry((float) 68.9, 10));
    vals1.add(new Entry((float) 88.9, 11));

    // create a dataset and give it a type
    LineDataSet set1 = new LineDataSet(vals1, "DataSet 1");
    set1.setDrawCubic(true);
    set1.setCubicIntensity(0.2f);
    set1.setDrawFilled(false);
    set1.setDrawCircles(true);
    set1.setLineWidth(0f);
    set1.setCircleSize(2f);
    set1.setCircleColor(Color.parseColor("#e6e6e6"));
    set1.setHighLightColor(Color.rgb(244, 117, 117));
    set1.setColor(Color.WHITE);
    set1.setFillColor(Color.parseColor("#e6e6e6"));

// set1.setFillAlpha(100);
set1.setDrawHorizontalHighlightIndicator(true);
set1.setFillFormatter(new FillFormatter() {
@Override
public float getFillLinePosition(LineDataSet dataSet, LineDataProvider dataProvider) {
return 0;
}
});

    // create a data object with the datasets
    LineData data = new LineData(xVals, set1);
    data.setValueTypeface(tf);
    data.setValueTextSize(12f);
    data.setValueTextColor(Color.WHITE);
    data.setDrawValues(false);
    // set data
    mChart.setData(data);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值