我意识到 AndroidPlot 有一个论坛,但它不是最活跃的,所以我会在这里碰碰运气......
我正在尝试使用 AndroidPlot 库从我的 XY 图中删除系列指标或图例。我不想从情节本身中删除该系列,只是传说。
我已经在 AndroidPlot 示例上看到它完成了,但是由于文档有限,很难找到方法来完成诸如删除图例之类的事情
我意识到 AndroidPlot 有一个论坛,但它不是最活跃的,所以我会在这里碰碰运气......
我正在尝试使用 AndroidPlot 库从我的 XY 图中删除系列指标或图例。我不想从情节本身中删除该系列,只是传说。
我已经在 AndroidPlot 示例上看到它完成了,但是由于文档有限,很难找到方法来完成诸如删除图例之类的事情
好的,我有以下代码来执行此操作。这没有在最新版本上进行测试,但希望仍然很好。
if (!mKeyOn)
mDynamicPlot.getLayoutManager()
.remove(mDynamicPlot.getLegendWidget());
if (!mDomainLabelOn)
mDynamicPlot.getLayoutManager().remove(
mDynamicPlot.getDomainLabelWidget());
看起来诀窍是获取 layoutManager。
您还可以将 Androidplot 的XML 样式与 Configurator 一起使用,并且由于反射,只需在 XML 布局文件中指定它的可见性即可删除图例,如下所示:
<com.androidplot.xy.XYPlot
...
androidPlot.legendWidget.visible="false"
... />
如果不需要动态更改您的图例,我认为最好将这样的样式放在 XML 文件中。
查看代码,setLegendWidget仅更新 LegendWidget 的本地句柄,但不更新 LayoutManager,这是在进行绘图时实际调用的内容。如果您实施 Ifor 的(赞成)建议,您应该会成功,因为它直接与 LayoutManager 交互:
plot.getLayoutManager().remove(plot.getDomainLabelWidget());
另一种选择是像这样隐藏图例:
plot.getLegendWidget().setVisible(false);
前提是(根据上面的信息)您没有尝试用之前调用 setLegendWidget() 来替换/删除图例小部件。
如果您只想从图例小部件中删除一个(或特定)系列图例,只需使用:
yourSeriesFormater.setLegendIconEnabled(false);
这对我有用。