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

https://github.com/lecho/hellocharts-android

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

App_显示图表内容的更多相关文章

  1. CozyRSS开发记录15-获取和显示RSS内容

    CozyRSS开发记录15-获取和显示RSS内容 1.内容列表 我们先给RSSContentFrame增加一个ViewModel,里面和RSS源列表一样,提供一个ObservableCollectio ...

  2. 显示textarea内容的时候没有自动换行

    显示textarea内容的时候没有自动换行,网上找了好久,在一个论坛里找到解决方法: 1.把从数据库读出来的内容存放在一个Div内,例如: <div class="new-commen ...

  3. gridView RowDataBound事件 鼠标经过行颜色变化及根据字段值显示指定内容

    protected void gvBarInfo_RowDataBound(object sender, GridViewRowEventArgs e)        {            if ...

  4. EditTextPreference点击后输入框显示隐藏内容,类似密码输入(转)

    http://bbs.anzhuo.cn/thread-928131-1-1.html EditTextPreference点击后输入框显示隐藏内容,类似密码输入... [复制链接]     aski ...

  5. bootstrap模态框modal使用remote第二次加载显示相同内容解决办法

    bootstrap模态框modal使用remote动态加载内容,第二次加载显示相同内容解决办法 bootstrap的modal中,使用remote可以动态加载页面到modal-body中,并弹窗显示 ...

  6. 如何给wordpress首页自动显示文章内容的第一个图片

    敏捷个人手机应用中使用到的数据来源于wordpress中,因为自己写的页面,所以可以自己写代码获取文章内容的第一个图片作为文章缩略图来显示,这样用户看到首页时图文并茂,感觉会好一些. 现在后台简单的使 ...

  7. 2-ls 显示目录内容

    ls list directory contents 显示目录内容 [语法]: ls [选项] [参数] [功能介绍] ls指令用来显示目录列表,在Linux系统中有着较高的使用率.ls指令的输出信息 ...

  8. js勾选时显示相应内容

    使用环境,一.比如用户勾选时显示一些安全方面提示“你真的要自动登录吗?这将使你下次不需要密码即可进入你的个人中心.”二.显示其他预设选项,以方便用户选择输入,比如密保问题设置,当用户不想使用自定义设置 ...

  9. winform里面网页显示指定内容

    今天有个同事问了一下我,怎么在winform里面打开网页啊?我们都是基于C/S的开发,很少接触winform,所以我当时就懵了,实在不知道怎么回答,所以索性说不知道.但是我又想了想,这个应该是个很简单 ...

随机推荐

  1. jquery使用css函数设置背景色无效解决办法

    外部的css样式为: #imageArea{ width: 200px; height: 300px; background-color: #eee !important; } 通过 以下代码来修改其 ...

  2. ch5 对链接应用样式

    简单的链接样式 对链接应用样式最容易的方式是:使用锚类型选择器,例如 a {color:red;} 链接伪类选择器:1.:link:寻找没有被访问过的链接2.:visited:寻找被访问过的链接 动态 ...

  3. 嵊州普及Day5T2

    题意:将(w,h)的纸条折成(W,H),最少需几步. 思路:横竖互不干扰,然后最多可折int型一半,拿个函数判断两次比较即可,然后折不了的条件是需要的矩形大于给的矩形. 见代码: #include&l ...

  4. VUE - 路由跳转时设置动画效果

    /* 为对应的路由跳转时设置动画效果 */   <transition name="fade">         <router-view />     & ...

  5. [转]Android 如何建立AIDL

    建立AIDL服务要比建立普通的服务复杂一些,具体步骤如下: (1)在Eclipse Android工程的Java包目录中建立一个扩展名为aidl的文件.该文件的语法类似于Java代码,但会稍有不同.详 ...

  6. Koa原理和封装

    相关文章 最基础 实现一个简单的koa2框架 实现一个简版koa koa实践及其手撸 Koa源码只有4个js文件 application.js:简单封装http.createServer()并整合co ...

  7. 021、MySQL变量的使用,在MySQL中创建存储过程,并添加变量

    #编写一个存储过程 CREATE PROCEDURE ShowDate ( ) BEGIN #变量定义 ); #变量赋值 set m_str1 = '曾经沧海难为水'; #输出当前时间 SELECT ...

  8. Irecycleview 的初次使用简单介绍(irecycleview 下拉刷新上拉加载)

    导包 还得加一个maven地址自己也看一下作者git把有详细解释(自己也要导入recycleview的包) 我的例子下载地址  https://www.lanzous.com/i32yzaj impl ...

  9. 【剑指Offer】面试题32 - I. 从上到下打印二叉树

    题目 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3 ...

  10. 剑指offer自学系列(二)

    题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内,数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次,请找出数组中任一个重复的数字,例如,如果输入长度为7的 ...