在这个 dileber框架 是由我们面包派工作室编写的这套代码(希望大家多捧场,star一下),今天我在上面添加了一个,绘制折线图类,可以绘制基金图表。
这个类可以绘制多条线,并且在里面加入了触控,和缓存,触控可以回调;可以添加图表标识。
制作出的图表这样:
这个是单线的
Android 开发:使用绘制基金图表类(带缓存的图表类)_触控
这个是多线的,图上是两线的,还可以更多线:
Android 开发:使用绘制基金图表类(带缓存的图表类)_触控_02

这个类在框架里的名字叫:QuXianChatView
这个view使用如下,你要在你的xml里配置
        <com.drcosu.ndileber.view.QuXianChatView
            android:id="@+id/new_fund_detail_center_chart"
            android:layout_width="match_parent"
            android:layout_height="200dp"/>

之后在你的代码里写
//这个是刷新缓存的标志,如果你只有一个图的话可以不用设置。而我的项目里是点击切换多个表,需要设置清除缓存
baseFundChartView.setRefData(true);
设置图标识,可以在这里设置,也可以在回调里设置,我的需求是要每次触摸要重新写标识,我就在回调里写了
 baseFundChartView.setText(null);
//设置回调,每次触摸成功回调(这里有触摸重复判断)
 baseFundChartView.setOnFundChat(new BaseFundChartView.OnFundChat() {
                    @Override
                    public void onRefChatText(BaseFundChartView view, int x) {
                        if(x<tongleiMapData.get(spaceEnum).size()){
                            List<String> list = new ArrayList<String>();
                            list.add("时间:"+tongleiMapXTime.get(spaceEnum).get(x));
                            list.add("同类排名:"+(int)((float)tongleiMapData.get(spaceEnum).get(x)));
                            view.setText(list);
                        }
                    }
                });
//设置纵轴的数字保留几位
 baseFundChartView.setFormat(TNum.moneyFormat(point,keep));
//设置有几条虚线
 baseFundChartView.setyCount(count);
//设置起始(纵轴左下角的起始点)
 baseFundChartView.setyStart(max);
//设置结束(纵轴左上角的结束点)
 baseFundChartView.setyStop(min);
//设置x轴(必须与数据的数量一样)
 baseFundChartView.setDateX(dateX);
//设置数据(List<List<Float>> 这种格式,List<Float>是数据,外面表示多组)
 baseFundChartView.setData(datam);
//设置颜色的数组(按照数据的顺序给颜色)
 List<Integer> colors = new ArrayList<>();
 colors.add(Color.rgb(55,161,236));
 colors.add(Color.rgb(255,149,0));
 colors.add(Color.rgb(255,27,26));
 baseFundChartView.setColors(colors);
//刷新当前图表
 baseFundChartView.invalidate();