• App_显示图表内容


    今天在之前记账本的基础上增加了图标的显示功能,在本次课程中它以折线图为例讲述。但是课程中给出了多有图的代码案例。

    但是结果并不是很理想,中途进行了很多色测试,没有出现问题,但是在做后图表的显示中出现了闪退的问题,根据网上所说的我进行了配置的更改,但是依旧无效,继续明天的努力,解决闪退bug的问题把

    这里并没有下载和复制图标源码,而是在build.gradle里面做了引用

     并在这里对以上的内容在chart_view.xml中做了引用

    复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="10dp">
    
        <lecho.lib.hellocharts.view.LineChartView
            android:id="@+id/chart"
            android:padding="20dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            />
    
    </LinearLayout>
    复制代码

    并且新建了相对应的ChartsActivity.java:

    复制代码
    package com.example.familybook_hu;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    import androidx.annotation.Nullable;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import java.util.TreeMap;
    
    import lecho.lib.hellocharts.model.Line;
    import lecho.lib.hellocharts.model.LineChartData;
    import lecho.lib.hellocharts.model.PointValue;
    import lecho.lib.hellocharts.model.ValueShape;
    import lecho.lib.hellocharts.util.ChartUtils;
    import lecho.lib.hellocharts.view.LineChartView;
    
    public class ChartsActivity extends Activity {
    
        private LineChartView mChart;
        private Map<String,Integer> table=new TreeMap<>();//合并之后的数据源
        private LineChartData mData;
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.chart_view);
            mChart=(LineChartView) findViewById(R.id.chart);
            mData=new LineChartData();
            List<CostBean> allDate= (List<CostBean>) getIntent().getSerializableExtra("cost_list");
            generateValues(allDate);//合并同一天数据
            generateData();
        }
    
        private void generateData() {
            List<Line> lines=new ArrayList<>();
            List<PointValue> values=new ArrayList<>();
            int indeX=0;
            for(Integer value:table.values()){
                //通过循环生成相对应的点
                values.add(new PointValue(indeX,value));
                indeX++;
            }
            //将产生的点进行连接生成线
            Line line=new Line(values);
            line.setColor(ChartUtils.COLORS[0]);
            line.setShape(ValueShape.CIRCLE);
            line.setPointColor(ChartUtils.COLORS[1]);
            lines.add(line);
            mData =new LineChartData(lines);
            mData.setLines(lines);
            mChart.setLineChartData(mData);
        }
    
        private void generateValues(List<CostBean> allDate) {
            //将同一天数据进行累加,并且将算好放到数据源table中
            if(allDate!=null){
                for(int i=0;i<allDate.size();i++){
                    CostBean costBean=allDate.get(i);//去除全部数值
                    String costDate=costBean.costDate;
                    int costMoney=Integer.parseInt(costBean.costMoney);
                    if(!table.containsKey(costDate)){
                        table.put(costDate,costMoney);
                    }
                    else{
                        int originMoney=table.get(costDate);
                        table.put(costDate,originMoney+costMoney);
                    }
                }
            }
        }
    }
    复制代码
  • 相关阅读:
    移动端触摸右侧菜单栏,页面内容对应项滚动到最上方
    swiper使用中一些点的总结
    javaScript正则表达式入门
    javaScript之数组操作方法(一)
    初识vue
    焦点控制切换和轮播
    文本内容只显示两行,然后加...
    图片父容器高度不定的图片垂直居中
    css3图片垂直居中
    【C#】两个list根据某个元素比较差集
  • 原文地址:https://www.cnblogs.com/hrzgj/p/14913424.html
Copyright © 2020-2023  润新知