Android仿火币K线图实现

3,277 阅读1分钟

KLineChart

仿火币K线图实现(包含MA,BOLL,MACD,KDJ,RSI,WR指标),直接集成到项目就可直接使用

先看项目运行效果

配置使用


<com.github.fujianlian.klinechart.KLineChartView

    android:id="@+id/kLineChartView"

    android:layout_width="match_parent"

    android:layout_height="match_parent" />

主图和附图初始化


// KLineChartView

private void initView() {

    ...

    // 依次添加副图子视图

    addChildDraw(mMACDDraw);

    addChildDraw(mKDJDraw);

    addChildDraw(mRSIDraw);

    addChildDraw(mWRDraw);

    // 设置成交量视图

    setVolDraw(mVolumeDraw);

    // 设置主视图

    setMainDraw(mMainDraw);

}

BaseKLineChartView


// 主图显示隐藏调用

public void changeMainDrawType(Status status) {

    if (mainDraw != null && mainDraw.getStatus() != status) {

        mainDraw.setStatus(status);

        invalidate();

    }

}

// 主视图当前子视图

public enum Status {

    MA, BOLL, NONE

}

// 设置子视图,position依据初始化添加先后顺序下标

public void setChildDraw(int position) {

        if (mChildDrawPosition != position) {

            if (!isShowChild) {

                isShowChild = true;

                initRect();

            }

            mChildDraw = mChildDraws.get(position);

            mChildDrawPosition = position;

            isWR = position == 5;

            invalidate();

        }

    }

// 子视图隐藏

public void hideChildDraw() {

        mChildDrawPosition = -1;

        isShowChild = false;

        mChildDraw = null;

        initRect();

        invalidate();

    }

KLineChartView


// 是否显示为分时图

public void setMainDrawLine(boolean isLine) {

        mMainDraw.setLine(isLine);

    }

app下载

项目地址 KLineChartDemo