override public void render(xGraphics g) { g.setColor(C.GREY_LINE_COLOR); g.getGraphics().Clear(Color.Black); if (mTrade == null) { return; } Font f = mContext.getFontSmall(); if (mTrade.mHasNewData || mTrade != mOldTrade) { calcChartXY(); mTrade.mHasNewData = false; } mOldTrade = mTrade; if (mTrade == null || mTrade.mShare == null) { return; } //=====================draw chart============== int[] h = { getH() * 3 / 4, getH() / 3, getH() / 3 }; // chart, MACD, vol int[] y = { 0, getH() / 2, getH() - h[2] }; int w = getW() - 2; int x = 0; //=================================================================== if (mShouldDrawMACD) { h[0] = getH() * 3 / 4 - 12; y[0] = 12; h[1] = getH() / 2; y[1] = getH() / 2; h[2] = getH() / 5; y[2] = getH() - h[2] - 13; } else { h[0] = getH() * 3 / 4 - 12; y[0] = 12; h[1] = getH() / 3; y[1] = getH() / 2; h[2] = getH() / 3; y[2] = getH() - h[2] - 13; } //============================================ drawPriceLines(g, y[0], h[0]); //===============chart line===================== // bollinger drawBollingers(g, y[0], h[0]); drawChart(g, y[0], h[0]); //=================================================================== drawVolume(g, y[2], h[2]); if (mShouldDrawMACD) { drawMACD(g, y[1], h[1]); } drawText(g, 65); //=========================== drawMACDButton(g); // xem chi tiet button Font font = mContext.getFontText(); g.setColor(C.COLOR_ORANGE); g.drawString(font, "Chi tiết >>", getW() - 82, 2, xGraphics.LEFT); }