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

How to set height and width to MPAndroidChart BarChart?

我正在尝试向 activity 添加静态条形图,但它覆盖了整个屏幕。我使用的代码如下 -

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>

我哪里错了? 有什么建议

当你调用setContentView()指定视图的布局参数被忽略,并设置为默认MATCH_PARENT,所以在你的代码中setContentView(bc)会导致你的BarChart填充整个屏幕。

一个解决方案是将静态条形图视图放在 ViewGroup 下,例如 LinearLayout,在 activity_main.xml 中,然后调用 setContentView(R.layout.activity_main).

编辑:

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

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

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

bc=new BarChart(this);

因此,删除此行,您应该能够看到您的条形图。