我们目前正在使用以下代码在XChart库中绘制文本,但在ODROID C2上,例如文本被加扰且不可读(参见附图以供参考)。之前使用的代码是以layout.draw开头的行,但它被替换,因为它导致了EPS和PDF导出中的问题。我们有一个github问题here,它说明了问题的各种原因。它在其他几个装置上运行良好。
FontRenderContext frc = g.getFontRenderContext();
// TextLayout layout = new TextLayout(tickLabel, font, new FontRenderContext(null, true, false));
TextLayout layout = new TextLayout(tickLabel, getChartPainter().getStyleManager().getAxisTickLabelsFont(), frc);
Rectangle2D tickLabelBounds = layout.getBounds();
// layout.draw(g, (float) xOffset, (float) (yOffset + axisTick.getAxis().getPaintZone().getHeight() - tickLocation + tickLabelBounds.getHeight() / 2.0));
Shape shape = layout.getOutline(null);
AffineTransform orig = g.getTransform();
AffineTransform at = new AffineTransform();
at.translate((float) xOffset, (float) (yOffset + axisTick.getAxis().getPaintZone().getHeight() - tickLocation + tickLabelBounds.getHeight() / 2.0));
g.transform(at);
g.fill(shape);
g.setTransform(orig);
更新:
原来这是与arm64 java相关的。当使用64位Java时,问题如图所示,当使用32位Java时,它正常工作。我仍然不知道为什么或如何解决这个问题。
答案 0 :(得分:0)
此问题与odroid c2上运行的oracles arm64 Java有关。切换到Zulu Java后,此问题已解决。