我正在努力将androidplot中的图例小部件移动到我想要的地方。
我正在尝试使用androidplot来渲染一组数据。我通过调用DemoApp中使用的position()方法来跟踪将图例窗口小部件放置到某个点的方式。但我从未成功过。我被封锁了将近一周。有人可以帮我检查一下我的代码是否犯了一些错误。除了示例代码之外,我没有找到任何关于如何使用此lib的文档。
我的布局xml:
<com.androidplot.xy.XYPlot
android:id="@+id/mySimpleXYPlot"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_below="@+id/seperator1"
androidPlot.domainLabelWidget.labelPaint.textSize="@dimen/domain_label_font_size"
androidPlot.graphWidget.domainLabelPaint.textSize="@dimen/domain_tick_label_font_size"
androidPlot.graphWidget.domainOriginLabelPaint.textSize="@dimen/domain_tick_label_font_size"
androidPlot.graphWidget.rangeLabelPaint.textSize="@dimen/range_tick_label_font_size"
androidPlot.graphWidget.rangeOriginLabelPaint.textSize="@dimen/range_tick_label_font_size"
androidPlot.legendWidget.heightMetric.value="25dp"
androidPlot.graphWidget.marginBottom="25dp"
androidPlot.graphWidget.marginLeft="15dp"
androidPlot.graphWidget.marginRight="10dp"
androidPlot.graphWidget.marginTop="20dp"
androidPlot.legendWidget.iconSizeMetrics.heightMetric.value="15dp"
androidPlot.legendWidget.iconSizeMetrics.widthMetric.value="15dp"
androidPlot.legendWidget.positionMetrics.anchor="left_top"
androidPlot.legendWidget.positionMetrics.xPositionMetric.value="0"
androidPlot.legendWidget.textPaint.textSize="@dimen/legend_text_font_size"
androidPlot.legendWidget.widthMetric.value="100dp"
androidPlot.rangeLabelWidget.labelPaint.textSize="@dimen/range_label_font_size"
androidPlot.titleWidget.labelPaint.textSize="@dimen/title_font_size" />
<!-- androidPlot.graphWidget.gridLinePaint.color="#000000"/> -->
我的源代码:
private void makePlotPretty() {
// use a 2x2 grid with room for 4 items:
plot.getLegendWidget().setTableModel(new DynamicTableModel(2, 2));
// add a semi-transparent black background to the legend
// so it's easier to see overlaid on top of our plot:
Paint bgPaint = new Paint();
bgPaint.setColor(Color.BLACK);
bgPaint.setStyle(Paint.Style.FILL);
bgPaint.setAlpha(255);
plot.getLegendWidget().setBackgroundPaint(bgPaint);
/* plot.getLegendWidget().setPositionMetrics(null);
*/
plot.getLegendWidget().setWidth(PixelUtils.dpToPix(40), SizeLayoutType.FILL);
plot.getGraphWidget().setRangeLabelHorizontalOffset(-1);
plot.getLegendWidget().position(125, XLayoutStyle.ABSOLUTE_FROM_LEFT, 100, YLayoutStyle.ABSOLUTE_FROM_TOP, AnchorPosition.LEFT_TOP);
}
答案 0 :(得分:1)
documentation包含page for the legend,其中包含示例代码,包括定位图例。
关键线似乎是
mySimpleXYPlot.position(
mySimpleXYPlot.getLegendWidget(),
20,
XLayoutStyle.ABSOLUTE_FROM_RIGHT,
35,
YLayoutStyle.ABSOLUTE_FROM_BOTTOM,
AnchorPosition.RIGHT_BOTTOM);