我可以在7英寸平板电脑模拟器中借助Dan开发条形图,并在此屏幕中使用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轴移动来查看完整的图表。但是无论设备如何,用户都应该在屏幕上看到完整的图表。
如何使此条形图跨设备兼容,以便它不会在左侧和右侧切断?
答案 0 :(得分:2)
setXAxisMin()
和setXAxisMax()
调用设置图表的比例,而不是图表的大小。
尝试减少传递给setBarWidth()
的值。我希望图表的总宽度由num_bars * (X+Y)
给出,其中X和Y传递给(setBarWidth(X)
+ setBarSpacing(Y)
)。
我从未使用ACE构建条形图,但我认为应该根据实际窗口宽度和图表中的条形数来计算。希望有所帮助。