如何为 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);
因此,删除此行,您应该能够看到您的条形图。
我正在尝试向 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);
因此,删除此行,您应该能够看到您的条形图。