当设备处于横向模式时,MPAndroidChart PieChartRenderer会崩溃

时间:2015-04-16 19:40:26

标签: android mpandroidchart

我在我的应用程序中使用MPAndroidChart。 我收到了很多用户的报告。 他们面临的问题是:

java.lang.IllegalArgumentException: width and height must be > 0
at android.graphics.Bitmap.createBitmap(Bitmap.java:922)
at android.graphics.Bitmap.createBitmap(Bitmap.java:901)
at android.graphics.Bitmap.createBitmap(Bitmap.java:868)
at com.github.mikephil.charting.renderer.PieChartRenderer.drawData(PieChartRenderer.java:79)
at com.github.mikephil.charting.charts.PieChart.onDraw(PieChart.java:96)
at android.view.View.draw(View.java:15423)
...

这些导致崩溃的行。

 mDrawBitmap = Bitmap.createBitmap((int) mViewPortHandler.getChartWidth(),
(int) mViewPortHandler.getChartHeight(), Bitmap.Config.ARGB_8888);

只有当平板电脑处于横向模式时,应用才会崩溃。

当我的设备处于横向模式时,似乎没有调用Chart类中的onSizeChanged。 横向模式 - >纵向模式,onSizeChanged调用 肖像模式 - >横向模式,onSizeChanged未调用

2 个答案:

答案 0 :(得分:2)

你确实没有检查Bitmap初始化的高度。

我刚刚发布了一个针对此的修复程序,它位于最新提交中:https://github.com/PhilJay/MPAndroidChart/commit/bff61718198f839aa819c8769d4f71e755625b94

您可以查看或等到我发布下一个版本。

答案 1 :(得分:0)

我发现了问题。 当我尝试以编程方式运行容器的LayoutParams时,应用程序崩溃。

当我只使用xml布局中指定的参数时,它可以工作。