美文网首页
动态曲线,K线

动态曲线,K线

作者: it奔跑在路上 | 来源:发表于2019-04-28 09:57 被阅读0次

安卓大部分图库,如曲线,扇形图,矩形图,都是基于 MPAndroidChart 进行开发。此项目暂未采用。

GIF.gif

单独lib包下载地址:https://share.weiyun.com/5iYKptT
整个项目下载地址:https://share.weiyun.com/5iFDH6V

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent"
    tools:context="com.example.dynamicklinedemo.MainActivity">

    <com.tophold.trade.view.kview.KView
        android:id="@+id/fk_kv_kview"
        android:layout_width="match_parent"
        android:layout_height="278dp"
        android:background="#1B314A" />

</LinearLayout>
public class MainActivity extends AppCompatActivity {

    private KView mFkKvKview;
    private Timer timerToRequest;
    private ArrayList<Quotes> mQuotesList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();
        initData();
    }

    private void initData() {
        mQuotesList = new ArrayList<>();
        loadKLineData();
        subKLineData();
    }

    private void initView() {
        mFkKvKview = (KView) findViewById(R.id.fk_kv_kview);
        mFkKvKview.setDigit(2);
        mFkKvKview.setShowTimSharing(true);
        mFkKvKview.setShowMinor(false);
        mFkKvKview.setShowVol(false);
    }

    private void loadKLineData() {
        adapterData();
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                drawKView(false);
            }
        });
    }

    private void adapterData() {
        List<Quotes> quotesList = new ArrayList<>();
        Random random = new Random();
        //这里写一个随机数,模拟100条数据
        for (int i = 0; i < 100; i++) {
            double num = random.nextInt(100) + 33690;
            Quotes quotes = new Quotes(num,num,num,num,System.currentTimeMillis());
            quotesList.add(quotes);
        }

        mQuotesList.addAll(0, quotesList);
    }

    private void drawKView(boolean isLoadMore) {
        if (!isLoadMore) {
            mFkKvKview.setKViewData(mQuotesList, new KViewListener.MasterTouchListener() {
                @Override
                public void onLongTouch(Quotes preQuotes, Quotes currentQuotes) {
                }

                @Override
                public void onUnLongTouch() {
                }

                @Override
                public void needLoadMore() {
                    if (StringUtils.isEmpty(mQuotesList)) {
                        mFkKvKview.loadMoreNoData();
                        return;
                    }
                }
            });
        } else {
            mFkKvKview.loadKViewData(mQuotesList);
            Log.d("6666666661", mQuotesList.toString());
        }
    }

    private void subKLineData() {
        //这里写一个随机数,模拟数据
        timerToRequest = new Timer();
        timerToRequest.schedule(new TimerTask() {
            @Override
            public void run() {
//                                loadKLineData(null, false,HttpManager.REQUEST_NAME_OPTION_KLINEINFO);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Random random = new Random();
                        double num = random.nextInt(100) + 33690;
                        double num1 = random.nextInt(100) + 33690;
                        double num2 = random.nextInt(100) + 33690;
                        double num3 = random.nextInt(100) + 33690;
//                        i++;
                        Quotes quotes = new Quotes(num, num1, num2, num3, System.currentTimeMillis());
                        mFkKvKview.pushKViewData(quotes, 500);
                    }
                });

            }
        }, 0, 1000);
    }

    @Override
    protected void onStop() {
        super.onStop();
        if (timerToRequest != null) {
            timerToRequest.cancel();
        }
    }

相关文章

  • 动态曲线,K线

    安卓大部分图库,如曲线,扇形图,矩形图,都是基于 MPAndroidChart 进行开发。此项目暂未采用。 单独l...

  • 《BOLL布林线》笔记

    BOLL主要由K线和三条曲线构成,三条曲线永远不相交,之上而下分别是上轨BOLL线的黄色线条,中轨BOLL线的白色...

  • 以太坊地址生成

    通过椭圆曲线算法生成钥匙对(公钥和私钥),以太坊采用的是secp256k1曲线。公钥采用uncompressed模...

  • 供需笔记(中)

    静态K线,实体小于50%振幅;动态K线,实体大于50%振幅。 入场有三种:在区间涨平跌,1.挂单;2.观察平;3....

  • k线形态 第六节 旭日东升

    阿布量化APP下载 原文地址 tag: k线形态, k线分析, K线密码, k线奥秘, k线炒股 k线分析: 形态...

  • k线形态 第七节 射击之星

    阿布量化APP下载 原文地址 tag: k线形态, k线分析, K线密码, k线奥秘, k线炒股 k线分析: 形态...

  • k线形态 第八节 单针探底

    阿布量化APP下载 原文地址 tag: k线形态, k线分析, K线密码, k线奥秘, k线炒股 k线分析: 形态...

  • k线形态 第九节 乌云盖顶

    阿布量化APP下载 原文地址 tag: k线形态, k线分析, K线密码, k线奥秘, k线炒股 k线分析: 形态...

  • k线形态 第十节 阳包阴

    阿布量化APP下载 原文地址 tag: k线形态, k线分析, K线密码, k线奥秘, k线炒股 k线分析: 形态...

  • ★60.自定义控件 ★09.Path之贝塞尔曲线

    原理 贝塞尔曲线的点 一阶曲线 一阶曲线其实就是前面讲解过的lineTo。 二阶曲线 图示 二阶曲线对应的方法是q...

网友评论

      本文标题:动态曲线,K线

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