Androidplot - 不以横向显示

时间:2014-09-11 11:31:17

标签: android androidplot

如果我使用Androidplot绘制条形图,然后将手机方向从纵向更改为横向,则所有图表信息都会消失。 (链接到屏幕截图)。

风景---没有图表数据

https://drive.google.com/file/d/0B4CxFPSlLEYpSXV1VnZFVFUtWGc/edit?usp=sharing

人像---图表数据

https://drive.google.com/file/d/0B4CxFPSlLEYpdGZCMm8xdGZHTlk/edit?usp=sharing

经过一些试验和错误后,我发现如果我将图表宽度设置为设备屏幕宽度的0.96,则所有图表信息都会再次出现。

在横向拍摄时,如何让Androidplot占据设备屏幕宽度的100%?

我可以在Androidplot - X-Axis labels cut off

找到创建图表的代码

1 个答案:

答案 0 :(得分:0)

做这样的事情

 private View createBarGraph()
    {
        // initialize our XYPlot reference:
        XYPlot plot = (XYPlot) this.findViewById(R.id.mySimpleXYPlot1);

        // Create a couple arrays of y-values to plot:
        Number[] series1Numbers = GenerateGraphValues();

        // Turn the above arrays into XYSeries':
        XYSeries series1 = new SimpleXYSeries(Arrays.asList(series1Numbers), 
        SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, // Y_VALS_ONLY means use the
                                                                                                // element index as the x value
                "Series1"); // Set the display title of the series

        BarFormatter series1Format = new BarFormatter(Color.rgb(51, 181, 229), Color.TRANSPARENT);
        PointLabelFormatter plf = new PointLabelFormatter();
        plf.getTextPaint().setTextSize(18);
        plf.getTextPaint().setColor(Color.BLACK);
        series1Format.setPointLabelFormatter(plf);

        series1Format.setPointLabeler(new PointLabeler(){
            DecimalFormat df = new DecimalFormat("##0.00");

            public String getLabel(XYSeries series, int index)
            {

                // need to check for null
                if(series.getY(index) == null) return "";

                return df.format(series.getY(index));
            }
        });

        // add a new series' to the xyplot:
        plot.addSeries(series1, series1Format);

        // Y axis config
        plot.setRangeLabel("Values"); // label
        plot.setRangeBoundaries(0, 110, BoundaryMode.FIXED); // scale
        plot.setRangeStep(XYStepMode.INCREMENT_BY_VAL, 10); // steps
        plot.getGraphWidget().getRangeLabelPaint().setTextSize(26); // font size
        DecimalFormat nf = new DecimalFormat("#0");
        plot.setRangeValueFormat(nf);

        // X Axs config
        plot.setDomainLabel("Indexes");
        plot.setDomainStep(XYStepMode.INCREMENT_BY_VAL, 1);
         plot.getGraphWidget().setDomainValueFormat(new DecimalFormat("0"));
        plot.getGraphWidget().getDomainLabelPaint().setTextSize(18);
        plot.getGraphWidget().setMarginTop(20);
        plot.getGraphWidget().setMarginBottom(15);
        plot.getGraphWidget().setMarginLeft(15);
        plot.getGraphWidget().setMarginRight(15);
//      plot.getLegendWidget().setHeight(14);
        plot.getGraphWidget().setGridPaddingLeft(15);
        plot.getGraphWidget().setGridPaddingRight(15);
//      plot.getGraphWidget().setGridPaddingBottom(20);
        // other config
        plot.getLegendWidget().setVisible(false); // hide legend
        plot.getGraphWidget().getDomainGridLinePaint().setColor(Color.TRANSPARENT); // hide
                                                                                                                                                                // grid
                                                                                                                                                                // lines
        plot.getGraphWidget().getRangeGridLinePaint().setColor(Color.TRANSPARENT); // hide
                                                                                                                                                                // grid
                                                                                                                                                                // lines
//      plot.getGraphWidget().setGridPaddingLeft(40); // give some padding
//      plot.getGraphWidget().setGridPaddingRight(40); // give some padding
        plot.getGraphWidget().getGridBackgroundPaint().setColor(Color.WHITE); // background
                                                                                                                                                    // color
//      plot.getTitleWidget().setPaddingTop(10); // give some padding

        // set bar width
        BarRenderer<?> renderer = (BarRenderer<?>) plot.getRenderer(BarRenderer.class);
        renderer.setBarWidth(20);
        return plot;

    }