Android GraphView 4.x-条形图不适合

Android GraphView 4.x-条形图不适合,android,android-graphview,Android,Android Graphview,我在Android应用程序中使用4.x版本的GraphView。我有一个带有7个数据点的条形图,第一个和最后一个条形图被切断 这是我的密码 private static final String[] WEEK_DAYS = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; private void showChartData() { ChartData[] data = new ChartData[7]; for (int

我在Android应用程序中使用4.x版本的GraphView。我有一个带有7个数据点的条形图,第一个和最后一个条形图被切断

这是我的密码

private static final String[] WEEK_DAYS = {"Sun", "Mon", "Tue", "Wed",  "Thu", "Fri", "Sat"};

private void showChartData() {

    ChartData[] data = new ChartData[7];
    for (int x = 0; x < 7; x++) {
        data[x] = new ChartData();
    }
    data[0].setEnrollmentCount(2);
    data[1].setEnrollmentCount(4);
    data[2].setEnrollmentCount(6);
    data[3].setEnrollmentCount(8);
    data[4].setEnrollmentCount(10);
    data[5].setEnrollmentCount(12);
    data[6].setEnrollmentCount(14);

    chartHolder.removeAllViews();

    DataPoint[] graphViewData = new DataPoint[7];

    for (int i = 0; i < data.length; i++) {
        graphViewData[i] = new DataPoint(i,
                data[i].getEnrollmentCount());
    }

    BarGraphSeries<DataPoint> series = new BarGraphSeries<DataPoint>(graphViewData);
    series.setColor(getResources().getColor(R.color.custom_red));

    GraphView graphView = new GraphView(this);
    graphView.addSeries(series); // data
    graphView.setBackgroundColor(Color.WHITE);
    graphView.setTitle("Sales This Week");

    StaticLabelsFormatter staticLabelsFormatter = new StaticLabelsFormatter(graphView);
    staticLabelsFormatter.setHorizontalLabels(WEEK_DAYS);
    graphView.getGridLabelRenderer().setLabelFormatter(staticLabelsFormatter);          
    graphView.getGridLabelRenderer().setGridStyle(GridStyle.NONE);
    chartHolder.addView(graphView);
}
private static final String[]WEEK_DAYS={“Sun”、“Mon”、“Tue”、“Wed”、“Thu”、“Fri”、“Sat”};
私有void showChartData(){
ChartData[]数据=新的ChartData[7];
对于(int x=0;x<7;x++){
数据[x]=新的图表数据();
}
数据[0]。setEnrollmentCount(2);
数据[1]。setEnrollmentCount(4);
数据[2]。setEnrollmentCount(6);
数据[3]。setEnrollmentCount(8);
数据[4]。setEnrollmentCount(10);
数据[5]。setEnrollmentCount(12);
数据[6]。setEnrollmentCount(14);
chartHolder.removeAllViews();
DataPoint[]graphViewData=新数据点[7];
对于(int i=0;i
这是条形图的屏幕截图

看来,在v3.1.3和4.0.0之间已经有了很多变化,无论如何,这一次也发生了变化。库v3中特定于条形图的逻辑将视口上下分流了半个xInterval,因此屏幕上第一个和最后一个条目的全宽条似乎已被删除。无论如何,编写代码是很简单的

double xInterval=1.0;
graphView.getViewport().setXAxisBoundsManual(true);
if (dataSeries instanceof BarGraphSeries ) {
    // Shunt the viewport, per v3.1.3 to show the full width of the first and last bars. 
    graphView.getViewport().setMinX(dataSeries.getLowestValueX() - (xInterval/2.0));
    graphView.getViewport().setMaxX(dataSeries.getHighestValueX() + (xInterval/2.0));
} else {
    graphView.getViewport().setMinX(dataSeries.getLowestValueX() );
    graphView.getViewport().setMaxX(dataSeries.getHighestValueX());
}