饼图在CardView中的大小不正确

时间:2015-07-21 18:47:23

标签: android mpandroidchart

我正在开发一个Android应用程序,我正在使用MPAndroidChart lib。然而,应用程序是使用MPAndroidChart版本2-0-8开发的。我的图表显示完美,如下图所示。

enter image description here

但今天我将lib版本更新为2-1-1。我没有对我的代码进行任何更改,但我的图表现在看起来像这样。

enter image description here

这是图表的xml代码。

 <com.github.mikephil.charting.charts.PieChart
                    android:id="@+id/chart"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/top_bottomMarginForChart"
                    android:layout_marginLeft="@dimen/top_bottomMarginForChart"
                    android:layout_marginRight="30dp"
                    android:layout_marginBottom="@dimen/top_bottomMarginForChart" />

P.S。如果重要的话,我会在CardView上显示图表。

我需要在代码中更新任何内容吗?正如我在网站上搜索但没有找到任何东西。

这是图表的Java代码。

mChart = (PieChart) rootView.findViewById(R.id.chart);
mChart.setHoleColor(Color.WHITE);
mChart.setHoleRadius(40f);
mChart.setDescription("");
mChart.setDrawCenterText(true);
mChart.setDrawHoleEnabled(true);
mChart.setRotationAngle(0);
mChart.setDrawSliceText(false);
mChart.setRotationEnabled(true);
mChart.setUsePercentValues(true);
mChart.setTouchEnabled(false);
mChart.animateXY(1500, 1500);

图例

  Legend l = mChart.getLegend();
  l.setPosition(Legend.LegendPosition.RIGHT_OF_CHART_CENTER);
  l.setXEntrySpace(10f);
  l.setYEntrySpace(10f);

数据设置到图表

private void setData(int count, float range)
 {

    ArrayList<Entry> yVals1 = new ArrayList<Entry>();
    for (int i = 0; i < count ; i++)
    {
        yVals1.add(new Entry(Total_Amount[i],i));
    }

    ArrayList<String> xVals = new ArrayList<String>();
    for (int i = 0; i < count ; i++) {
        xVals.add(Array1[i]);           
    }

    PieDataSet set1 = new PieDataSet(yVals1, "");
    set1.setSliceSpace(3f);

    ArrayList<Integer> colors = new ArrayList<Integer>();
    for (int i = 0; i < count ; i++) {
        colors.add(Color.parseColor(ColorName[i]));

    }


    colors.add(ColorTemplate.getHoloBlue());
    set1.setColors(colors);

    PieData data = new PieData(xVals, set1);
    data.setDrawValues(false);
    mChart.setData(data);
    mChart.highlightValues(null);
    mChart.invalidate();

}

1 个答案:

答案 0 :(得分:1)

我不确定,但我发现上述问题仅在我将PieChart身高设为wrap_content时才会出现。

我通过硬编码我不建议的PieChart高度来解决这个问题。如果有人有其他解决方案可以发布它。