Java 类com.github.mikephil.charting.data.CandleDataSet 实例源码

项目:GitHub    文件:CombinedChartActivity.java   
protected CandleData generateCandleData() {

        CandleData d = new CandleData();

        ArrayList<CandleEntry> entries = new ArrayList<CandleEntry>();

        for (int index = 0; index < itemcount; index += 2)
            entries.add(new CandleEntry(index + 1f, 90, 70, 85, 75f));

        CandleDataSet set = new CandleDataSet(entries, "Candle DataSet");
        set.setDecreasingColor(Color.rgb(142, 150, 175));
        set.setShadowColor(Color.DKGRAY);
        set.setBarSpace(0.3f);
        set.setValueTextSize(10f);
        set.setDrawValues(false);
        d.addDataSet(set);

        return d;
    }
项目:igrow-android    文件:EnvironmentalSensorDetailFragment.java   
protected CandleData generateCandleData() {

        CandleData d = new CandleData();

        ArrayList<CandleEntry> entries = new ArrayList<CandleEntry>();

        for (int index = 0; index < itemcount; index += 2)
            entries.add(new CandleEntry(index + 1f, 90, 70, 85, 75f));

        CandleDataSet set = new CandleDataSet(entries, "Candle DataSet");
        set.setDecreasingColor(Color.rgb(142, 150, 175));
        set.setShadowColor(Color.DKGRAY);
        set.setBarSpace(0.3f);
        set.setValueTextSize(10f);
        set.setDrawValues(false);
        d.addDataSet(set);

        return d;
    }
项目:Stayfit    文件:CombinedChartActivity.java   
protected CandleData generateCandleData() {

        CandleData d = new CandleData();

        ArrayList<CandleEntry> entries = new ArrayList<CandleEntry>();

        for (int index = 0; index < itemcount; index++)
            entries.add(new CandleEntry(index, 20f, 10f, 13f, 17f));

        CandleDataSet set = new CandleDataSet(entries, "Candle DataSet");
        set.setColor(Color.rgb(80, 80, 80));
        set.setBarSpace(0.3f);
        set.setValueTextSize(10f);
        set.setDrawValues(false);
        d.addDataSet(set);

        return d;
    }
项目:ecological-marine-unit-android    文件:SummaryChartPresenter.java   
/**
 * Prepare CandleData for candlestick chart
 * @param xIndex - float
 * @param shadowH - float
 * @param shadowL - float
 * @param open - float
 * @param close - float
 * @param seriesName - String
 * @return CandleData
 */
private CandleData generateCandleData(float xIndex, float shadowH, float shadowL, float open, float close, String seriesName){
  CandleData d = new CandleData();
  ArrayList<CandleEntry> entries = new ArrayList<>();
  entries.add(new CandleEntry(xIndex, shadowH, shadowL, open, close));
  CandleDataSet set = new CandleDataSet(entries, seriesName);
  set.setDecreasingColor(Color.rgb(142, 150, 175));
  set.setShadowColor(Color.DKGRAY);
  set.setDecreasingColor(Color.parseColor("#2196F3"));
  set.setBarSpace(0.3f);
  set.setValueTextSize(10f);
  set.setShadowWidth(2f);
  set.setDrawValues(false);
  d.addDataSet(set);
  return d;
}
项目:xs-android-architecture    文件:CombinedChartActivity.java   
protected CandleData generateCandleData() {

        CandleData d = new CandleData();

        ArrayList<CandleEntry> entries = new ArrayList<CandleEntry>();

        for (int index = 0; index < itemcount; index += 2)
            entries.add(new CandleEntry(index + 1f, 90, 70, 85, 75f));

        CandleDataSet set = new CandleDataSet(entries, "Candle DataSet");
        set.setDecreasingColor(Color.rgb(142, 150, 175));
        set.setShadowColor(Color.DKGRAY);
        set.setBarSpace(0.3f);
        set.setValueTextSize(10f);
        set.setDrawValues(false);
        d.addDataSet(set);

        return d;
    }
项目:MPAndroidChart    文件:CombinedChartActivity.java   
protected CandleData generateCandleData() {

        CandleData d = new CandleData();

        ArrayList<CandleEntry> entries = new ArrayList<CandleEntry>();

        for (int index = 0; index < itemcount; index += 2)
            entries.add(new CandleEntry(index + 1f, 90, 70, 85, 75f));

        CandleDataSet set = new CandleDataSet(entries, "Candle DataSet");
        set.setDecreasingColor(Color.rgb(142, 150, 175));
        set.setShadowColor(Color.DKGRAY);
        set.setBarSpace(0.3f);
        set.setValueTextSize(10f);
        set.setDrawValues(false);
        d.addDataSet(set);

        return d;
    }
项目:MarketBot    文件:MarketHistoryTab.java   
private CandleData generateMarginCandleData(List<MarketHistory> historyEntries) {

        SimpleDateFormat format = new SimpleDateFormat("MMM dd", Locale.getDefault());

        int size = historyEntries.size();
        List<CandleEntry> entries = new ArrayList<>(size);
        List<String> xAxis = new ArrayList<>(size);
        for (int i = 0; i < size; i++) {
            MarketHistory history = historyEntries.get(i);
            Date recordDate = new Date(history.getRecordDate());

            xAxis.add(format.format(recordDate));
            entries.add(new CandleEntry(i,
                (float) history.getHighPrice(),
                (float) history.getLowPrice(),
                (float) history.getAveragePrice(),
                (float) history.getAveragePrice()
            ));
        }

        CandleDataSet set = new CandleDataSet(entries, "Price Margins");
        set.setShadowColor(Color.DKGRAY);
        set.setShadowWidth(2.0f);
        set.setShowCandleBar(true);
        set.setBarSpace(0.35f);
        set.setNeutralColor(Color.DKGRAY);
        set.setDrawValues(false);

        set.setDrawHighlightIndicators(false);
        set.setDrawVerticalHighlightIndicator(false);

        set.setAxisDependency(YAxis.AxisDependency.LEFT);
        return new CandleData(xAxis, set);

    }
项目:P2P    文件:CandleStickChartRenderer.java   
@Override
public void initBuffers() {
    CandleData candleData = mChart.getCandleData();
    mShadowBuffers = new CandleShadowBuffer[candleData.getDataSetCount()];
    mBodyBuffers = new CandleBodyBuffer[candleData.getDataSetCount()];

    for (int i = 0; i < mShadowBuffers.length; i++) {
        CandleDataSet set = candleData.getDataSetByIndex(i);
        mShadowBuffers[i] = new CandleShadowBuffer(set.getValueCount() * 4);
        mBodyBuffers[i] = new CandleBodyBuffer(set.getValueCount() * 4);
    }
}
项目:P2P    文件:CandleStickChartRenderer.java   
@Override
public void drawData(Canvas c) {

    CandleData candleData = mChart.getCandleData();

    for (CandleDataSet set : candleData.getDataSets()) {

        if (set.isVisible() && set.getEntryCount() > 0)
            drawDataSet(c, set);
    }
}
项目:react-native-mp-android-chart    文件:CandleStickChartManager.java   
@Override
void dataSetConfig(IDataSet<CandleEntry> dataSet, ReadableMap config) {
    CandleDataSet candleDataSet = (CandleDataSet) dataSet;

    ChartDataSetConfigUtils.commonConfig(candleDataSet, config);
    ChartDataSetConfigUtils.commonBarLineScatterCandleBubbleConfig(candleDataSet, config);
    ChartDataSetConfigUtils.commonLineScatterCandleRadarConfig(candleDataSet, config);

    // CandleDataSet only config
    if (BridgeUtils.validate(config, ReadableType.Number, "barSpace")) {
        candleDataSet.setBarSpace((float) config.getDouble("barSpace"));
    }
    if (BridgeUtils.validate(config, ReadableType.Number, "shadowWidth")) {
        candleDataSet.setShadowWidth((float) config.getDouble("shadowWidth"));
    }
    if (BridgeUtils.validate(config, ReadableType.String, "shadowColor")) {
        candleDataSet.setShadowColor(Color.parseColor(config.getString("shadowColor")));
    }
    if (BridgeUtils.validate(config, ReadableType.Boolean, "shadowColorSameAsCandle")) {
        candleDataSet.setShadowColorSameAsCandle(config.getBoolean("shadowColorSameAsCandle"));
    }
    if (BridgeUtils.validate(config, ReadableType.String, "neutralColor")) {
        candleDataSet.setNeutralColor(Color.parseColor(config.getString("neutralColor")));
    }
    if (BridgeUtils.validate(config, ReadableType.String, "decreasingColor")) {
        candleDataSet.setDecreasingColor(Color.parseColor(config.getString("decreasingColor")));
    }
    if (BridgeUtils.validate(config, ReadableType.String, "decreasingPaintStyle")) {
        candleDataSet.setDecreasingPaintStyle(Paint.Style.valueOf(config.getString("decreasingPaintStyle").toUpperCase()));
    }
    if (BridgeUtils.validate(config, ReadableType.String, "increasingColor")) {
        candleDataSet.setIncreasingColor(Color.parseColor(config.getString("increasingColor")));
    }
    if (BridgeUtils.validate(config, ReadableType.String, "increasingPaintStyle")) {
        candleDataSet.setIncreasingPaintStyle(Paint.Style.valueOf(config.getString("increasingPaintStyle").toUpperCase()));
    }
}
项目:GitHub    文件:CandleStickChartActivity.java   
@Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

        int prog = (mSeekBarX.getProgress() + 1);

        tvX.setText("" + prog);
        tvY.setText("" + (mSeekBarY.getProgress()));

        mChart.resetTracking();

        ArrayList<CandleEntry> yVals1 = new ArrayList<CandleEntry>();

        for (int i = 0; i < prog; i++) {
            float mult = (mSeekBarY.getProgress() + 1);
            float val = (float) (Math.random() * 40) + mult;

            float high = (float) (Math.random() * 9) + 8f;
            float low = (float) (Math.random() * 9) + 8f;

            float open = (float) (Math.random() * 6) + 1f;
            float close = (float) (Math.random() * 6) + 1f;

            boolean even = i % 2 == 0;

            yVals1.add(new CandleEntry(
                    i, val + high,
                    val - low,
                    even ? val + open : val - open,
                    even ? val - close : val + close,
                    getResources().getDrawable(R.drawable.star)
            ));
        }

        CandleDataSet set1 = new CandleDataSet(yVals1, "Data Set");

        set1.setDrawIcons(false);
        set1.setAxisDependency(AxisDependency.LEFT);
//        set1.setColor(Color.rgb(80, 80, 80));
        set1.setShadowColor(Color.DKGRAY);
        set1.setShadowWidth(0.7f);
        set1.setDecreasingColor(Color.RED);
        set1.setDecreasingPaintStyle(Paint.Style.FILL);
        set1.setIncreasingColor(Color.rgb(122, 242, 84));
        set1.setIncreasingPaintStyle(Paint.Style.STROKE);
        set1.setNeutralColor(Color.BLUE);
        //set1.setHighlightLineWidth(1f);

        CandleData data = new CandleData(set1);

        mChart.setData(data);
        mChart.invalidate();
    }
项目:Stayfit    文件:CandleStickChartActivity.java   
@Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

        int prog = (mSeekBarX.getProgress() + 1);

        tvX.setText("" + prog);
        tvY.setText("" + (mSeekBarY.getProgress()));

        mChart.resetTracking();

        ArrayList<CandleEntry> yVals1 = new ArrayList<CandleEntry>();

        for (int i = 0; i < prog; i++) {
            float mult = (mSeekBarY.getProgress() + 1);
            float val = (float) (Math.random() * 40) + mult;

            float high = (float) (Math.random() * 9) + 8f;
            float low = (float) (Math.random() * 9) + 8f;

            float open = (float) (Math.random() * 6) + 1f;
            float close = (float) (Math.random() * 6) + 1f;

            boolean even = i % 2 == 0;

            yVals1.add(new CandleEntry(i, val + high, val - low, even ? val + open : val - open,
                    even ? val - close : val + close));
        }

        ArrayList<String> xVals = new ArrayList<String>();
        for (int i = 0; i < prog; i++) {
            xVals.add("" + (1990 + i));
        }

        CandleDataSet set1 = new CandleDataSet(yVals1, "Data Set");
        set1.setAxisDependency(AxisDependency.LEFT);
//        set1.setColor(Color.rgb(80, 80, 80));
        set1.setShadowColor(Color.DKGRAY);
        set1.setShadowWidth(0.7f);
        set1.setDecreasingColor(Color.RED);
        set1.setDecreasingPaintStyle(Paint.Style.FILL);
        set1.setIncreasingColor(Color.rgb(122, 242, 84));
        set1.setIncreasingPaintStyle(Paint.Style.STROKE);
        set1.setNeutralColor(Color.BLUE);
        //set1.setHighlightLineWidth(1f);

        CandleData data = new CandleData(xVals, set1);

        mChart.setData(data);
        mChart.invalidate();
    }
项目:react-native-mp-android-chart    文件:CandleStickChartManager.java   
@Override
IDataSet createDataSet(ArrayList<CandleEntry> entries, String label) {
    return new CandleDataSet(entries, label);
}
项目:xs-android-architecture    文件:CandleStickChartActivity.java   
@Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

        int prog = (mSeekBarX.getProgress() + 1);

        tvX.setText("" + prog);
        tvY.setText("" + (mSeekBarY.getProgress()));

        mChart.resetTracking();

        ArrayList<CandleEntry> yVals1 = new ArrayList<CandleEntry>();

        for (int i = 0; i < prog; i++) {
            float mult = (mSeekBarY.getProgress() + 1);
            float val = (float) (Math.random() * 40) + mult;

            float high = (float) (Math.random() * 9) + 8f;
            float low = (float) (Math.random() * 9) + 8f;

            float open = (float) (Math.random() * 6) + 1f;
            float close = (float) (Math.random() * 6) + 1f;

            boolean even = i % 2 == 0;

            yVals1.add(new CandleEntry(i, val + high, val - low, even ? val + open : val - open,
                    even ? val - close : val + close));
        }

        CandleDataSet set1 = new CandleDataSet(yVals1, "Data Set");
        set1.setAxisDependency(AxisDependency.LEFT);
//        set1.setColor(Color.rgb(80, 80, 80));
        set1.setShadowColor(Color.DKGRAY);
        set1.setShadowWidth(0.7f);
        set1.setDecreasingColor(Color.RED);
        set1.setDecreasingPaintStyle(Paint.Style.FILL);
        set1.setIncreasingColor(Color.rgb(122, 242, 84));
        set1.setIncreasingPaintStyle(Paint.Style.STROKE);
        set1.setNeutralColor(Color.BLUE);
        //set1.setHighlightLineWidth(1f);

        CandleData data = new CandleData(set1);

        mChart.setData(data);
        mChart.invalidate();
    }
项目:mobile-manager-for-cloudflare    文件:CandleStickChart.java   
@Override
protected void drawData() {

    ArrayList<CandleDataSet> dataSets = mData.getDataSets();

    // pre allocate
    float[] shadowPoints = new float[4];
    float[] bodyPoints = new float[4];

    for (int i = 0; i < mData.getDataSetCount(); i++) {

        CandleDataSet dataSet = dataSets.get(i);
        ArrayList<CandleEntry> entries = dataSet.getYVals();

        mRenderPaint.setStrokeWidth(dataSet.getShadowWidth());

        for (int j = 0; j < entries.size() * mPhaseX; j++) {

            // get the color that is specified for this position from
            // the DataSet, this will reuse colors, if the index is out
            // of bounds
            mRenderPaint.setColor(dataSet.getColor(j));

            // get the entry
            CandleEntry e = entries.get(j);

            // transform the entries values for shadow and body
            transformShadow(shadowPoints, e);
            transformBody(bodyPoints, e, dataSet.getBodySpace());

            float xShadow = shadowPoints[0];
            float leftBody = bodyPoints[0];
            float rightBody = bodyPoints[2];

            float high = shadowPoints[1];
            float low = shadowPoints[3];

            float open = bodyPoints[1];
            float close = bodyPoints[3];

            if (isOffContentRight(leftBody))
                break;

            // make sure the lines don't do shitty things outside bounds
            if (isOffContentLeft(rightBody)
                    && isOffContentTop(low)
                    && isOffContentBottom(high))
                continue;

            // draw the shadow
            mDrawCanvas.drawLine(xShadow, low, xShadow, high, mRenderPaint);

            // decide weather the body is hollow or filled
            if (open > close) {

                mRenderPaint.setStyle(Paint.Style.FILL);
                // draw the body
                mDrawCanvas.drawRect(leftBody, close, rightBody, open, mRenderPaint);

            } else {

                mRenderPaint.setStyle(Paint.Style.STROKE);
                // draw the body
                mDrawCanvas.drawRect(leftBody, open, rightBody, close, mRenderPaint);
            }
        }
    }
}
项目:mobile-manager-for-cloudflare    文件:CandleStickChart.java   
@Override
protected void drawHighlights() {

    for (int i = 0; i < mIndicesToHightlight.length; i++) {

        int xIndex = mIndicesToHightlight[i].getXIndex(); // get the
                                                          // x-position

        CandleDataSet set = mData.getDataSetByIndex(mIndicesToHightlight[i].getDataSetIndex());

        if (set == null)
            continue;

        mHighlightPaint.setColor(set.getHighLightColor());

        CandleEntry e = set.getEntryForXIndex(xIndex);

        if(e == null) continue;

        float low = e.getLow() * mPhaseY;
        float high = e.getHigh() * mPhaseY;

        float[] vertPts = new float[] {
                xIndex, mYChartMax, xIndex, mYChartMin, xIndex + 1f, mYChartMax, xIndex + 1f,
                mYChartMin
        };

        float[] horPts = new float[] {
                0, low, mDeltaX, low, 0, high, mDeltaX, high
        };

        mTrans.pointValuesToPixel(vertPts);
        mTrans.pointValuesToPixel(horPts);

        // draw the vertical highlight lines
        mDrawCanvas.drawLines(vertPts, mHighlightPaint);

        // draw the horizontal highlight lines
        mDrawCanvas.drawLines(horPts, mHighlightPaint);
    }
}
项目:MPAndroidChart    文件:CandleStickChartActivity.java   
@Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

        int prog = (mSeekBarX.getProgress() + 1);

        tvX.setText("" + prog);
        tvY.setText("" + (mSeekBarY.getProgress()));

        mChart.resetTracking();

        ArrayList<CandleEntry> yVals1 = new ArrayList<CandleEntry>();

        for (int i = 0; i < prog; i++) {
            float mult = (mSeekBarY.getProgress() + 1);
            float val = (float) (Math.random() * 40) + mult;

            float high = (float) (Math.random() * 9) + 8f;
            float low = (float) (Math.random() * 9) + 8f;

            float open = (float) (Math.random() * 6) + 1f;
            float close = (float) (Math.random() * 6) + 1f;

            boolean even = i % 2 == 0;

            yVals1.add(new CandleEntry(
                    i, val + high,
                    val - low,
                    even ? val + open : val - open,
                    even ? val - close : val + close,
                    getResources().getDrawable(R.drawable.star)
            ));
        }

        CandleDataSet set1 = new CandleDataSet(yVals1, "Data Set");

        set1.setDrawIcons(false);
        set1.setAxisDependency(AxisDependency.LEFT);
//        set1.setColor(Color.rgb(80, 80, 80));
        set1.setShadowColor(Color.DKGRAY);
        set1.setShadowWidth(0.7f);
        set1.setDecreasingColor(Color.RED);
        set1.setDecreasingPaintStyle(Paint.Style.FILL);
        set1.setIncreasingColor(Color.rgb(122, 242, 84));
        set1.setIncreasingPaintStyle(Paint.Style.STROKE);
        set1.setNeutralColor(Color.BLUE);
        //set1.setHighlightLineWidth(1f);

        CandleData data = new CandleData(set1);

        mChart.setData(data);
        mChart.invalidate();
    }
项目:braingames    文件:CandleStickChart.java   
@Override
protected void drawData() {

    ArrayList<CandleDataSet> dataSets = mData.getDataSets();

    // pre allocate
    float[] shadowPoints = new float[4];
    float[] bodyPoints = new float[4];

    for (int i = 0; i < mData.getDataSetCount(); i++) {

        CandleDataSet dataSet = dataSets.get(i);
        ArrayList<CandleEntry> entries = dataSet.getYVals();

        mRenderPaint.setStrokeWidth(dataSet.getShadowWidth());

        for (int j = 0; j < entries.size() * mPhaseX; j++) {

            // get the color that is specified for this position from
            // the DataSet, this will reuse colors, if the index is out
            // of bounds
            mRenderPaint.setColor(dataSet.getColor(j));

            // get the entry
            CandleEntry e = entries.get(j);

            // transform the entries values for shadow and body
            transformShadow(shadowPoints, e);
            transformBody(bodyPoints, e, dataSet.getBodySpace());

            float xShadow = shadowPoints[0];
            float leftBody = bodyPoints[0];
            float rightBody = bodyPoints[2];

            float high = shadowPoints[1];
            float low = shadowPoints[3];

            float open = bodyPoints[1];
            float close = bodyPoints[3];

            if (isOffContentRight(leftBody))
                break;

            // make sure the lines don't do shitty things outside bounds
            if (isOffContentLeft(rightBody)
                    && isOffContentTop(low)
                    && isOffContentBottom(high))
                continue;

            // draw the shadow
            mDrawCanvas.drawLine(xShadow, low, xShadow, high, mRenderPaint);

            // decide weather the body is hollow or filled
            if (open > close) {

                mRenderPaint.setStyle(Paint.Style.FILL);
                // draw the body
                mDrawCanvas.drawRect(leftBody, close, rightBody, open, mRenderPaint);

            } else {

                mRenderPaint.setStyle(Paint.Style.STROKE);
                // draw the body
                mDrawCanvas.drawRect(leftBody, open, rightBody, close, mRenderPaint);
            }
        }
    }
}
项目:braingames    文件:CandleStickChart.java   
@Override
protected void drawHighlights() {

    for (int i = 0; i < mIndicesToHightlight.length; i++) {

        int xIndex = mIndicesToHightlight[i].getXIndex(); // get the
                                                          // x-position

        CandleDataSet set = mData.getDataSetByIndex(mIndicesToHightlight[i].getDataSetIndex());

        if (set == null)
            continue;

        mHighlightPaint.setColor(set.getHighLightColor());

        CandleEntry e = set.getEntryForXIndex(xIndex);

        if(e == null) continue;

        float low = e.getLow() * mPhaseY;
        float high = e.getHigh() * mPhaseY;

        float[] vertPts = new float[] {
                xIndex, mYChartMax, xIndex, mYChartMin, xIndex + 1f, mYChartMax, xIndex + 1f,
                mYChartMin
        };

        float[] horPts = new float[] {
                0, low, mDeltaX, low, 0, high, mDeltaX, high
        };

        mTrans.pointValuesToPixel(vertPts);
        mTrans.pointValuesToPixel(horPts);

        // draw the vertical highlight lines
        mDrawCanvas.drawLines(vertPts, mHighlightPaint);

        // draw the horizontal highlight lines
        mDrawCanvas.drawLines(horPts, mHighlightPaint);
    }
}
项目:Notification-Analyser    文件:CandleStickChart.java   
@Override
protected void drawData() {

    ArrayList<CandleDataSet> dataSets = mCurrentData.getDataSets();

    // pre allocate
    float[] shadowPoints = new float[4];
    float[] bodyPoints = new float[4];

    for (int i = 0; i < mCurrentData.getDataSetCount(); i++) {

        CandleDataSet dataSet = dataSets.get(i);
        ArrayList<CandleEntry> entries = dataSet.getYVals();

        mRenderPaint.setStrokeWidth(dataSet.getShadowWidth());

        for (int j = 0; j < entries.size() * mPhaseX; j++) {

            // get the color that is specified for this position from
            // the DataSet, this will reuse colors, if the index is out
            // of bounds
            mRenderPaint.setColor(dataSet.getColor(j));

            // get the entry
            CandleEntry e = entries.get(j);

            // transform the entries values for shadow and body
            transformShadow(shadowPoints, e);
            transformBody(bodyPoints, e, dataSet.getBodySpace());

            float xShadow = shadowPoints[0];
            float leftBody = bodyPoints[0];
            float rightBody = bodyPoints[2];

            float high = shadowPoints[1];
            float low = shadowPoints[3];

            float open = bodyPoints[1];
            float close = bodyPoints[3];

            if (isOffContentRight(leftBody))
                break;

            // make sure the lines don't do shitty things outside bounds
            if (isOffContentLeft(rightBody)
                    && isOffContentTop(low)
                    && isOffContentBottom(high))
                continue;

            // draw the shadow
            mDrawCanvas.drawLine(xShadow, low, xShadow, high, mRenderPaint);

            // decide weather the body is hollow or filled
            if (open > close) {

                mRenderPaint.setStyle(Paint.Style.FILL);
                // draw the body
                mDrawCanvas.drawRect(leftBody, close, rightBody, open, mRenderPaint);

            } else {

                mRenderPaint.setStyle(Paint.Style.STROKE);
                // draw the body
                mDrawCanvas.drawRect(leftBody, open, rightBody, close, mRenderPaint);
            }
        }
    }
}
项目:Notification-Analyser    文件:CandleStickChart.java   
@Override
protected void drawHighlights() {

    for (int i = 0; i < mIndicesToHightlight.length; i++) {

        int xIndex = mIndicesToHightlight[i].getXIndex(); // get the
                                                          // x-position

        CandleDataSet set = mOriginalData.getDataSetByIndex(mIndicesToHightlight[i].getDataSetIndex());

        if (set == null)
            continue;

        mHighlightPaint.setColor(set.getHighLightColor());

        CandleEntry e = set.getEntryForXIndex(xIndex);

        if(e == null) continue;

        float low = e.getLow() * mPhaseY;
        float high = e.getHigh() * mPhaseY;

        float[] vertPts = new float[] {
                xIndex, mYChartMax, xIndex, mYChartMin, xIndex + 1f, mYChartMax, xIndex + 1f,
                mYChartMin
        };

        float[] horPts = new float[] {
                0, low, mDeltaX, low, 0, high, mDeltaX, high
        };

        transformPointArray(vertPts);
        transformPointArray(horPts);

        // draw the vertical highlight lines
        mDrawCanvas.drawLines(vertPts, mHighlightPaint);

        // draw the horizontal highlight lines
        mDrawCanvas.drawLines(horPts, mHighlightPaint);
    }
}
项目:P2P    文件:CandleStickChartRenderer.java   
@Override
public void drawHighlighted(Canvas c, Highlight[] indices) {

    for (int i = 0; i < indices.length; i++) {

        int xIndex = indices[i].getXIndex(); // get the
                                             // x-position

        CandleDataSet set = mChart.getCandleData().getDataSetByIndex(
                indices[i].getDataSetIndex());

        if (set == null || !set.isHighlightEnabled())
            continue;

        CandleEntry e = set.getEntryForXIndex(xIndex);

        if (e == null || e.getXIndex() != xIndex)
            continue;

        float low = e.getLow() * mAnimator.getPhaseY();
        float high = e.getHigh() * mAnimator.getPhaseY();
        float y = (low + high) / 2f;

        float min = mChart.getYChartMin();
        float max = mChart.getYChartMax();


        float[] pts = new float[] {
                xIndex, y
        };

        mChart.getTransformer(set.getAxisDependency()).pointValuesToPixel(pts);

        // draw the lines
        drawHighlightLines(c, pts, set);
    }
}
项目:P2P    文件:CandleStickChartRenderer.java   
@Override
public void drawValues(Canvas c) {

    // if values are drawn
    if (mChart.getCandleData().getYValCount() < mChart.getMaxVisibleCount()
            * mViewPortHandler.getScaleX()) {

        List<CandleDataSet> dataSets = mChart.getCandleData().getDataSets();

        for (int i = 0; i < dataSets.size(); i++) {

            CandleDataSet dataSet = dataSets.get(i);

            if (!dataSet.isDrawValuesEnabled() || dataSet.getEntryCount() == 0)
                continue;

            // apply the text-styling defined by the DataSet
            applyValueTextStyle(dataSet);

            Transformer trans = mChart.getTransformer(dataSet.getAxisDependency());

            List<CandleEntry> entries = dataSet.getYVals();

            int minx = Math.max(mMinX, 0);
            int maxx = Math.min(mMaxX + 1, entries.size());

            float[] positions = trans.generateTransformedValuesCandle(
                    entries, mAnimator.getPhaseX(), mAnimator.getPhaseY(), minx, maxx);

            float yOffset = Utils.convertDpToPixel(5f);

            for (int j = 0; j < positions.length; j += 2) {

                float x = positions[j];
                float y = positions[j + 1];

                if (!mViewPortHandler.isInBoundsRight(x))
                    break;

                if (!mViewPortHandler.isInBoundsLeft(x) || !mViewPortHandler.isInBoundsY(y))
                    continue;

                CandleEntry entry = entries.get(j / 2 + minx);

                drawValue(c, dataSet.getValueFormatter(), entry.getHigh(), entry, i, x, y - yOffset);
            }
        }
    }
}