如何在 X 轴下移动日期?

How to move Date under X axis?

我在我的应用程序中使用 PhilJay/MPAndroidChart 库,我想知道是否有两种可能:

  1. 显示过去 14 天然后滚动查看前几天?
  2. 能否将日期(当前位于图表顶部)沿 x 轴移至底部?

Here is the current pic from the app and where i want to move date

我的方法:

 private void populateGraph(Cursor data) {
        ArrayList<Entry> cravingsPoints = new ArrayList<Entry>();
        ArrayList<Entry> severityPoints = new ArrayList<Entry>();

        ArrayList<String> dates = new ArrayList<String>();

        int index = 0;
        for (int i = 0; i < data.getCount(); i++) {
            if (i == 0) {
                // if orientation changed we need to start from the first one again
                data.moveToFirst();
            } else {
                data.moveToNext();
            }
            try {
                String date = data.getString(data.getColumnIndex(SmokeFreeContentProvider.DIARY_DATE));
                int cravings = data.getInt(data.getColumnIndex(SmokeFreeContentProvider.DIARY_CRAVINGS_COUNT));
                int severity = data.getInt(data.getColumnIndex(SmokeFreeContentProvider.DIARY_CRAVINGS_SEVERITY));

                DateTime diaryEntry = DateTimeFormat.forPattern("yyyyMMdd").parseDateTime(date);
                String entryLabel = diaryEntry.toString("dd MMM");

                cravingsPoints.add(new Entry(cravings, index));
                severityPoints.add(new Entry(severity, index));

                dates.add(entryLabel);


                index++;
            } catch (Exception e) {
                Log.e("SmokeFreeCravingsGraph", e.getMessage(), e);
            }
        }
        LineDataSet cravingsLineData = new LineDataSet(cravingsPoints, getString(R.string.cravings));
        LineDataSet severityLineData = new LineDataSet(severityPoints, getString(R.string.severity));

        cravingsLineData.setCircleSize(4f);
        cravingsLineData.setLineWidth(6f);
        cravingsLineData.setColor(getResources().getColor(R.color.green));

        severityLineData.setCircleSize(4f);
        severityLineData.setLineWidth(6f);
        severityLineData.setColor(getResources().getColor(android.R.color.holo_blue_light));

        ArrayList<LineDataSet> dataSets = new ArrayList<LineDataSet>();
        dataSets.add(cravingsLineData);
        dataSets.add(severityLineData);

        Paint infoPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        infoPaint.setTextAlign(Paint.Align.CENTER);
        infoPaint.setTextSize(com.github.mikephil.charting.utils.Utils.convertDpToPixel(14f));
        infoPaint.setColor(getResources().getColor(R.color.dark_grey));

        mChart.setDrawGridBackground(false);
        mChart.setDrawYValues(false);
        mChart.setDescription("");
        mChart.setStartAtZero(true);
        mChart.setPaint(infoPaint, Chart.PAINT_INFO);
        mChart.setNoDataText(getString(R.string.no_cravings_info));
        mChart.setNoDataTextDescription(getString(R.string.no_cravings_full_info));
        mChart.setData(new LineData(dates, dataSets));
    }
  1. 是的,查看文档:Modifying the Viewport

    看看setVisibleXRange(float xRange)方法。

  2. 是的,查看文档:XAxis

    看看xAxis.setPosition(...)方法。