美文网首页android碎片化知识
【原创】彩票走势图的绘制(加强版)

【原创】彩票走势图的绘制(加强版)

作者: 刀放下好好说话 | 来源:发表于2018-04-03 16:56 被阅读409次

一、效果图展示

chart_view_two.gif

二、分析

有的彩种比如双色球,他是有红蓝两个号码的走势图,需要在一张表格里面展示出来。这个需求也不难实现,我们只需要稍微修改下简单版的代码就可以实现了。

三、代码实现

我们在ChartView下面增加一个方法实现:

    /**
     * 新增一个隔壁的表格
     * @param blueCeilsGroup
     */
    public void addAnotherChart(List<CeilGroup> blueCeilsGroup){
        int columnCount = 0;
        int groupSize = ceilGroups.size();
        for (int i = 0; i < groupSize; i++) {
            List<Ceil> oldCeils = ceilGroups.get(i).getCeils();
            CeilGroup ceilGroup = blueCeilsGroup.get(i);
            List<Ceil> newCeils = ceilGroup.getCeils();
            //中间增加一个空的ceil
            oldCeils.add(new Ceil());
            for (Ceil newCeil : newCeils) {
                oldCeils.add(newCeil);
            }
            columnCount = oldCeils.size();
        }
        maxWidth = columnCount * ceilWidth;
        maxHeight = groupSize * ceilHeight;
        computeCeilLocation(0, 0);
    }

遍历已有的ceilGroups,对应的取出 blueCeilsGroup 每一行所有的Ceil加入到之前已经存在的 oldCeils 下,这里有一个技巧,增加一个空的Ceil,这样显示的时候会有一个空竖行,便于区分。
绘制球的时候,因为有两个颜色了,所以颜色这个属性需要加入到 Ceil 当中,绘制的时候判断取值:

    /**
     * 设置ceil选中的效果
     *
     * @param canvas
     * @param ceil
     */
    private void drawCeilSelected(Canvas canvas, Ceil ceil) {
        if (ceil.isSelected()) {
            selectedPaint.setColor(ceil.getColor());
            canvas.drawOval(new RectF(ceil.getLeft(), ceil.getTop(), ceil.getRight(), ceil.getBottom()), selectedPaint);
        }
    }

    /**
     * 绘制ceil的连线
     *
     * @param canvas
     * @param ceil
     */
    private void drawCeilLinkLine(Canvas canvas, Ceil ceil) {
        Ceil nextCeil = ceil.getNextCeil();
        if (nextCeil != null) {
            linkLinePaint.setColor(ceil.getColor());
            canvas.drawLine(nextCeil.getCenterX(), nextCeil.getCenterY(), ceil.getCenterX(), ceil.getCenterY(), linkLinePaint);
        }
    }

以上就是所有的代码了。绘制的里面因为加了边界判断,超出屏幕的部分其实不是实时绘制的,所以整体还是很顺滑。但是这个三层循环真的不是一个很好的解决方案,如果有什么可以优化的,私信告诉我。

github地址

相关文章

  • 【原创】彩票走势图的绘制(加强版)

    一、效果图展示 二、分析 有的彩种比如双色球,他是有红蓝两个号码的走势图,需要在一张表格里面展示出来。这个需求也不...

  • 【原创】彩票走势图的绘制(付费版)

    一、效果图展示 二、分析 如果要绘制这样带侧栏和顶栏的效果,就需要知道侧栏和顶栏的宽度和高度,给走势图区域设置向左...

  • 【原创】彩票走势图的绘制(简易版)

    一、效果图展示 二、分析 如果想要一张超大的表格,手机屏幕的空间肯定是不够的,那么需要自定义View,重写手指的o...

  • 【原创】彩票走势图的绘制(究极版)

    一、效果图展示 二、分析 很多时候如果View超出了屏幕,我们希望能够靠两根手指对View进行放大和缩小。放大缩小...

  • 使用CGContextRef绘制彩票走势图

    前一篇博客有提到最近在搞彩票走势图,期间遇到了很多问题,也踩了不少坑,抽出时间来整理下思路,总结下自己在画图过程中...

  • 2022-02-09人,不成熟的6个表现

    我们常说,有些人不成熟,什么是成熟? 一、期待运气,不相信努力拼搏 有朋友喜欢买彩票,专门绘制了中奖走势图,每天下...

  • 西瓜经第六十一章:参考

    现在的彩票技术,百家争艳,莫衷一是。当你在网络中浏览大乐透的走势图的时候,你会发现各种版本的走势图。有的走势图设计...

  • 关于梦境

    昨晚,梦见好多事,包括自己在一个彩票店选彩票的场景,但那个彩票店自己未曾去过,依稀还看见了彩票走势图,但一...

  • iOS股票K线图

    mark:iOS股票K线图 iOS 股票K线图绘制 iOS 股票K线图绘制 从零开始实现k线图走势图绘制(iOS实战篇)

  • Android 彩票走势图View

    彩票走势图 原博地址:刀放下好好说话原博的Github:rjpacket/ChartViewGitHub地址:点我...

网友评论

    本文标题:【原创】彩票走势图的绘制(加强版)

    本文链接:https://www.haomeiwen.com/subject/nzrchftx.html