Open liliang4869 opened 4 years ago
got ANR using linechart
version: v3.1.0-alpha trace: 1 com.github.mikephil.charting.renderer.AxisRenderer.computeAxisValues(AxisRenderer.java:212) 2 com.github.mikephil.charting.renderer.XAxisRenderer.computeAxisValues(XAxisRenderer.java:72) 3 com.github.mikephil.charting.renderer.XAxisRenderer.computeAxis(XAxisRenderer.java:67) 4 com.github.mikephil.charting.charts.BarLineChartBase.onDraw(BarLineChartBase.java:209) 5 android.view.View.draw(View.java:16195) 6 android.view.View.draw(View.java:16107) 7 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 8 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 9 android.view.View.draw(View.java:16105) 10 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 11 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 12 android.view.View.draw(View.java:16105) 13 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 14 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 15 android.view.View.draw(View.java:16198) 16 android.view.View.draw(View.java:16107) 17 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 18 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 19 android.view.View.draw(View.java:16105) 20 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 21 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 22 android.view.View.draw(View.java:16105) 23 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 24 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 25 android.view.View.draw(View.java:16105) 26 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 27 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 28 android.view.View.draw(View.java:16105) 29 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 30 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 31 android.view.View.draw(View.java:16198) 32 com.android.internal.policy.PhoneWindow$DecorView.draw(PhoneWindow.java:2734) 33 android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2728) 34 android.view.ViewRootImpl.draw(ViewRootImpl.java:2642) 35 android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2434) 36 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2067) 37 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) 38 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) 39 android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 40 android.view.Choreographer.doCallbacks(Choreographer.java:670) 41 android.view.Choreographer.doFrame(Choreographer.java:606) 42 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 43 android.os.Handler.handleCallback(Handler.java:739) 44 android.os.Handler.dispatchMessage(Handler.java:95) 45 android.os.Looper.loop(Looper.java:148) 46 android.app.ActivityThread.main(ActivityThread.java:5417) 47 java.lang.reflect.Method.invoke(Native Method) 48 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 49 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
code:
private void configChart() { YAxis ly = chart.getAxisLeft(); ly.setAxisMinimum(60); ly.setAxisMaximum(200); ly.setLabelCount(8, true); ly.setDrawGridLines(false); ly.setTextColor(0xffefefef); YAxis ry = chart.getAxisRight(); ry.setAxisMaximum(200); ry.setAxisMinimum(60); ry.setLabelCount(8, true); ry.setDrawGridLines(false); ry.setTextColor(0xffefefef); chart.setScaleXEnabled(true); chart.setScaleYEnabled(false); chart.setDragEnabled(false); chart.setTouchEnabled(true); data = new LineData(); data.setValueTextColor(Color.WHITE); chart.getDescription().setEnabled(false); chart.setData(data); chart.getLegend().setEnabled(false); chart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); chart.setHighlightPerTapEnabled(true); XAxis xAxis = chart.getXAxis(); xAxis.setValueFormatter(new MyXAxisValueFormatter(dataList));//dataList:object list xAxis.setGranularity(1); xAxis.setAxisMinimum(1); chart.setDrawGridBackground(true); xAxis.setDrawAxisLine(true); xAxis.setDrawGridLines(false); xAxis.setTextColor(0xffefefef); initEntry(); } private void initEntry() { LineData data = chart.getData(); data.addDataSet(createSet()); data.notifyDataChanged(); chart.notifyDataSetChanged(); chart.moveViewToX(data.getEntryCount()); } private LineDataSet createSet() { ArrayList<Entry> values = new ArrayList<>(); for (int i = 0; i < heartRateList.size(); i++) { int h = dataList.get(i).getValue();//get value from object h = h > 200 ? 200 : h < 60 ? 60 : h; values.add(new Entry(i, h)); } LineDataSet set = new LineDataSet(values, "y-value"); set.setColor(Color.rgb(0xe6, 0x12, 0x10)); set.setAxisDependency(YAxis.AxisDependency.LEFT); set.setLineWidth(1.5f); set.setDrawValues(false); set.setDrawCircles(false); set.setMode(LineDataSet.Mode.LINEAR); set.setDrawFilled(false); return set; } public class MyXAxisValueFormatter implements IAxisValueFormatter { private List<MyData> mValues; public MyXAxisValueFormatter(List<MyData> mValues) { this.mValues = mValues; } @Override public String getFormattedValue(float value, AxisBase axis) { if (value < 0) { return ""; } int position = (int) value; if (position >= mValues.size()) return ""; String result = ""+mValues.get(position).getLabel();//get label from object return result; } }
解决了嘛
got ANR using linechart
version: v3.1.0-alpha trace: 1 com.github.mikephil.charting.renderer.AxisRenderer.computeAxisValues(AxisRenderer.java:212) 2 com.github.mikephil.charting.renderer.XAxisRenderer.computeAxisValues(XAxisRenderer.java:72) 3 com.github.mikephil.charting.renderer.XAxisRenderer.computeAxis(XAxisRenderer.java:67) 4 com.github.mikephil.charting.charts.BarLineChartBase.onDraw(BarLineChartBase.java:209) 5 android.view.View.draw(View.java:16195) 6 android.view.View.draw(View.java:16107) 7 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 8 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 9 android.view.View.draw(View.java:16105) 10 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 11 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 12 android.view.View.draw(View.java:16105) 13 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 14 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 15 android.view.View.draw(View.java:16198) 16 android.view.View.draw(View.java:16107) 17 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 18 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 19 android.view.View.draw(View.java:16105) 20 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 21 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 22 android.view.View.draw(View.java:16105) 23 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 24 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 25 android.view.View.draw(View.java:16105) 26 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 27 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 28 android.view.View.draw(View.java:16105) 29 android.view.ViewGroup.drawChild(ViewGroup.java:3610) 30 android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400) 31 android.view.View.draw(View.java:16198) 32 com.android.internal.policy.PhoneWindow$DecorView.draw(PhoneWindow.java:2734) 33 android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2728) 34 android.view.ViewRootImpl.draw(ViewRootImpl.java:2642) 35 android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2434) 36 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2067) 37 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) 38 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) 39 android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 40 android.view.Choreographer.doCallbacks(Choreographer.java:670) 41 android.view.Choreographer.doFrame(Choreographer.java:606) 42 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 43 android.os.Handler.handleCallback(Handler.java:739) 44 android.os.Handler.dispatchMessage(Handler.java:95) 45 android.os.Looper.loop(Looper.java:148) 46 android.app.ActivityThread.main(ActivityThread.java:5417) 47 java.lang.reflect.Method.invoke(Native Method) 48 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 49 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
code: