Как не нарисовать отрицательное значение на линейной диаграмме - MPAndroidChart? - PullRequest
0 голосов
/ 03 апреля 2020

Я пытался скрыть это с помощью set.setColor (Color.Transparent), когда мое значение отрицательное. Но это не работает.

Это мой код:

public void addEntry() {
    LineData data = mChart.getData();

    if (data != null ) {

        ILineDataSet set = data.getDataSetByIndex(0);

        if(getYValue() > 0) {
            Log.d(TAG,"blue color");
            set = createSet();
            data.addDataSet(set);
            data.addEntry(new Entry(xValue, getYValue()), 0); //Y value is random from -5 to 10
            data.notifyDataChanged();
        } else  {
            Log.d(TAG,"transparent");
            set = createSetTransparent();
            data.addDataSet(set);
            data.addEntry(new Entry(xValue, getYValue()), 0);
        }
        xValue +=1;
        data.notifyDataChanged();

        mChart.notifyDataSetChanged();

        mChart.setVisibleXRangeMaximum(1028);

        mChart.moveViewToX(data.getEntryCount());

        mChart.invalidate();
    }
}

public LineDataSet createSetTransparent() {
    LineDataSet set = new LineDataSet(null, null);
    set.setLineWidth(3f);
    set.setColor(Color.TRANSPARENT);
    set.setHighlightEnabled(true);
    set.setDrawValues(true);
    set.setDrawCircles(false);
    set.setValueTextColor(Color.WHITE);
    return set;
}

public LineDataSet createSet() {
    LineDataSet set = new LineDataSet(null, null);
    set.setLineWidth(3f);
    set.setColor(Color.parseColor("#2094A5"));
    set.setHighlightEnabled(true);
    set.setDrawValues(true);
    set.setDrawCircles(false);
    set.setValueTextColor(Color.WHITE);
    return set;
}

Моя проблема заключается в следующем addDataSet () всегда получит мой первый набор . Например: моя линия всегда будет синей, даже если моя ценность отрицательная. И наоборот.

У кого-нибудь есть идеи по замене set на addDataSet ? Или не нарисованные линии при отрицательном значении

...