AChartEngine条形图的跨设备兼容性问题(Cross-Device Compatibilit

2019-10-18 09:07发布

我能够开发一个棒图的帮助下丹的7"平板电脑仿真器,并使其安装在这个屏幕我用setXAxisMax()setXAxisMin()这是我对仿真得到的图:

但是,当我安装了我的手机,不同的屏幕,它是这样的:

肖像

景观

这是我的代码:

........................
        XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
        mRenderer.setChartTitle("Submission Statistics");
//      mRenderer.setXTitle("Verdict Code");
//      mRenderer.setYTitle("No. of Submissions");
        mRenderer.setAxesColor(Color.BLACK);
        mRenderer.setApplyBackgroundColor(true);
        mRenderer.setBackgroundColor(Color.WHITE);
        mRenderer.setMarginsColor(Color.WHITE);
        mRenderer.setZoomEnabled(true);
//      mRenderer.setBarSpacing(-0.5);
//      mRenderer.setMargins(new int[] {20, 30, 15, 0});
//      mRenderer.setShowLegend(false);
        mRenderer.setAxisTitleTextSize(16);
        mRenderer.setChartTitleTextSize(22);
        mRenderer.setLabelsTextSize(15);
        mRenderer.setLegendTextSize(15);
        // mRenderer.addXTextLabel(1, "AC");
        // mRenderer.addXTextLabel(2, "PE");
        // mRenderer.addXTextLabel(3, "WA");
        // mRenderer.addXTextLabel(4, "TL");
        // mRenderer.addXTextLabel(5, "ML");
        // mRenderer.addXTextLabel(6, "CE");
        // mRenderer.addXTextLabel(7, "RE");
        // mRenderer.addXTextLabel(8, "OT");
        mRenderer.setBarWidth(80);
        mRenderer.setXAxisMin(-6);
        mRenderer.setXAxisMax(15);
        mRenderer.setYAxisMax(311);
        mRenderer.setYAxisMin(0);
        mRenderer.setYLabelsAlign(Align.RIGHT);
        mRenderer.setXLabelsColor(Color.BLACK);
        mRenderer.setLabelsColor(Color.BLACK);
        mRenderer.setYLabelsColor(0, Color.BLACK);
        mRenderer.setXLabels(0);
            mRenderer.setPanEnabled(true, false);
........................

我现在加mRenderer.setPanEnabled(true, false); 这样我就可以沿着仅移动x轴查看完整的图。 但是,用户应该看到在屏幕的全图而不考虑不同的设备。

如何使该柱状图跨设备兼容,因此它不会对左边和右边切掉?

Answer 1:

所述setXAxisMin()setXAxisMax()的调用设定的刻度图形,而不是图的大小。

尝试减少传递给值setBarWidth() 。 我期望图形的总宽度由下式给出num_bars * (X+Y)其中X和Y被传递到( setBarWidth(X) + setBarSpacing(Y)

我从来没有建立一个条形图与ACE,但我认为应该根据实际窗口宽度和图表在酒吧的数量来计算。 希望帮助。



文章来源: Cross-Device Compatibility Issue of AChartEngine Bar Graph