如何在androidplot中更改图例小部件的位置

时间:2013-12-31 15:25:52

标签: android androidplot

我正在努力将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);

        }

1 个答案:

答案 0 :(得分:1)

documentation包含page for the legend,其中包含示例代码,包括定位图例。

关键线似乎是

       mySimpleXYPlot.position(
            mySimpleXYPlot.getLegendWidget(),
            20,
            XLayoutStyle.ABSOLUTE_FROM_RIGHT,
            35,
            YLayoutStyle.ABSOLUTE_FROM_BOTTOM,
            AnchorPosition.RIGHT_BOTTOM);