【发布时间】:2017-08-08 16:50:04
【问题描述】:
当用户点击按钮时,我正在尝试将MPAndroidChart LineChart 视图转换为位图对象,以将图表保存为图像。但是,我得到一个 ArrayIndexOutOfBoundsException。我正在使用 MPAndroidChart v. 3.0.0-beta。代码如下:
public static Bitmap getBitmapFromView(View graph) {
Bitmap returnedBitmap = Bitmap.createBitmap(graph.getWidth(), graph.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnedBitmap);
Drawable bgDrawable = graph.getBackground();
if (bgDrawable != null)
bgDrawable.draw(canvas);
else
canvas.drawColor(Color.WHITE);
view.draw(canvas);
return returnedBitmap;
}
以下是例外,ConstantsAndUtils.java的第1409行是上面的view.draw(canvas)。
java.lang.ArrayIndexOutOfBoundsException: length=1;索引=1 在 com.github.mikephil.charting.renderer.LineChartRenderer.drawCircles(LineChartRenderer.java:689) 在 com.github.mikephil.charting.renderer.LineChartRenderer.drawExtras(LineChartRenderer.java:595) 在 com.github.mikephil.charting.charts.BarLineChartBase.onDraw(BarLineChartBase.java:252) 在 android.view.View.draw(View.java:14788) 在 com.dnaphone.edu.utils.ConstantsAndUtils.getBitmapFromView(ConstantsAndUtils.java:1409) 在 com.dnaphone.edu.fragments.HistoryExperimentResultFragment$24.doInBackground(HistoryExperimentResultFragment.java:1886) 在 com.dnaphone.edu.fragments.HistoryExperimentResultFragment$24.doInBackground(HistoryExperimentResultFragment.java:1655) 在 android.os.AsyncTask$2.call(AsyncTask.java:288) 在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 在 java.lang.Thread.run(Thread.java:841)
编辑:该问题已在最终 3.0.0 版本中得到解决。
【问题讨论】:
标签: android bitmap mpandroidchart