如何设置MPAndroidChart BarChart的高度和宽度?

时间:2015-03-19 17:10:47

标签: android height width bar-chart mpandroidchart

我正在尝试向活动添加静态BarChart,但它覆盖整个屏幕。我使用的代码如下 -

MainActivity.java

 BarChart bc = (BarChart) findViewById(R.id.chart);


    ArrayList<BarEntry> entries = new ArrayList<>();
    entries.add(new BarEntry(4f, 0));
    entries.add(new BarEntry(8f, 1));
    entries.add(new BarEntry(6f, 2));
    entries.add(new BarEntry(12f, 3));
    entries.add(new BarEntry(18f, 4));
    entries.add(new BarEntry(9f, 5));
    entries.add(new BarEntry(12f, 6));
    entries.add(new BarEntry(10f, 7));

    BarDataSet dataset = new BarDataSet(entries, "# of Calls");

    ArrayList<String> labels = new ArrayList<String>();
    labels.add("January");
    labels.add("February");
    labels.add("March");
    labels.add("April");
    labels.add("May");
    labels.add("June");
    labels.add("July");
    labels.add("August");
bc=new BarChart(this);

    BarData data = new BarData(labels, dataset);


    setContentView(bc);

   bc.setData(data);

MainActivity.xml

<com.github.mikephil.charting.charts.BarChart
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:id="@+id/chart"
    android:layout_below="@+id/textView"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="62dp">

    </com.github.mikephil.charting.charts.BarChart>

我哪里错了? 任何建议

1 个答案:

答案 0 :(得分:2)

当您致电setContentView()时,系统会忽略指定视图的布局参数,并设置为默认MATCH_PARENT,因此代码setContentView(bc)会导致您的BarChart填满整个屏幕

一种解决方案是将静态BarChart视图放在activityGroup的ViewGroup下,如LinearLayout,并调用setContentView(R.layout.activity_main)

编辑:

另一件事,在您的代码中,您通过执行以下操作获得了在xml中定义的BarChart:

BarChart bc = (BarChart) findViewById(R.id.chart);

哪个是正确的...但是稍后在您的代码中,您通过将bc分配给您实例化的另一个BarChart,使上述行毫无意义:

bc=new BarChart(this);

因此,删除此行,您应该能够看到您的BarChart。