【发布时间】:2013-07-16 22:40:51
【问题描述】:
我可以在Dan 的帮助下在一个 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 轴移动以查看完整的图表。但无论使用不同的设备,用户都应该在屏幕上看到完整的图表。
如何让这个条形图跨设备兼容,不至于左右截断?
【问题讨论】:
-
我也会对这个结果感兴趣,我最近一直在使用 ACE。我一直在做的一件事,不确定它是否会帮助你,就是只获取图形视图而不是意图。通过这种方式,您可以获得图表,然后您可以将其放入您为其保留空间的线性布局中,它会自动适应分配的空间。不过,我只用我的 10 英寸平板电脑做到了这一点,不确定它在不同尺寸上的效果如何。
-
当我在 Fragment 中显示它时,我也通过图形视图来完成它。我也将它放在线性布局中。在不同的设备上尝试你的一个以确保。如果可以,请与我分享您的代码:)
-
不幸的是,这是我唯一的设备,所以我无法在较小的设备上进行测试。我从来没有使用过片段,所以我不能真正和那些说话,但也许这就是这里的区别。尝试使用简单的线性布局设置一个测试项目,然后以编程方式在 Activity 中添加条形图的图形视图,看看它是否按照您想要的方式工作。
标签: android achartengine