放大并使用achartengine滚动时,时间图活动崩溃

时间:2013-08-15 07:32:52

标签: android achartengine

我有一个时间图表,Y轴上有2条线,X轴上有日期。我的问题是,当我放大图表时,它超出了手机屏幕,当我尝试滚动时,活动崩溃了。

任何建议都会有所帮助 谢谢

继承我的代码

    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

                        TimeSeries fPriceseries = new TimeSeries("Fuel prices");
                        for (int i = 0; i < fDates.length; i++)
                        {
                                try 
                                {
                                    fPriceseries.add(sdf.parse(fDates[i].trim()), fPrice[i]);
                                } 
                                catch (ParseException e)
                                {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }
                        }

                        TimeSeries fMileageSeries = new TimeSeries("Mileage");
                        for(int i=0;i<fDates.length;i++)
                        {
                            try 
                            {
                                fMileageSeries.add(sdf.parse(fDates[i].trim()), fMileage[i]);
                            } 
                            catch (ParseException e) 
                            {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }


                        }

                            dataset = new XYMultipleSeriesDataset();
                            dataset.addSeries(fPriceseries);
                            dataset.addSeries(fMileageSeries);




                            rRenderer = new XYMultipleSeriesRenderer();
                            rRenderer.setMargins(new int[] { 20, 30, 15, 0 });
                            rRenderer.setZoomButtonsVisible(true);
                            rRenderer.setZoomEnabled(true);
                            rRenderer.setMarginsColor(Color.argb(0x00, 0x01, 0x01, 0x01));
                            rRenderer.setLabelsColor(Color.BLACK);
                            rRenderer.setApplyBackgroundColor(true);
                            rRenderer.setLabelsTextSize(15f);
                            rRenderer.setLegendTextSize(15f);
                            rRenderer.setGridColor(Color.BLACK);
                            rRenderer.setAxisTitleTextSize(18f);
                            rRenderer.setAxesColor(Color.BLACK);
                            rRenderer.setXTitle("Dates");
                            rRenderer.setXLabelsColor(Color.BLACK);
                            rRenderer.setYTitle("Values");
                            rRenderer.setYLabelsColor(0, Color.BLACK);
                            rRenderer.setBackgroundColor(Color.TRANSPARENT);
                            rRenderer.setXRoundedLabels(false);
                            rRenderer.setXLabelsAlign(Align.CENTER);

                            // Customization time for line 1!

                            priceRenderer = new XYSeriesRenderer();
                            priceRenderer.setDisplayChartValues(true);
                            priceRenderer.isDisplayChartValues();
                            priceRenderer.setDisplayChartValuesDistance(10);
                            priceRenderer.setColor(Color.parseColor("#FFDC143C"));
                            priceRenderer.setPointStyle(PointStyle.CIRCLE);
                            priceRenderer.setFillPoints(true);
                            rRenderer.addSeriesRenderer(priceRenderer);


                            // Customization time for line 2!
                            mileageRenderer = new XYSeriesRenderer();
                            mileageRenderer.setDisplayChartValues(true);
                            mileageRenderer.setDisplayChartValuesDistance(10);
                            mileageRenderer.setPointStyle(PointStyle.CIRCLE);
                            mileageRenderer.setColor(Color.parseColor("#FF6B8E23"));
                            mileageRenderer.setFillPoints(true);
                            rRenderer.addSeriesRenderer(mileageRenderer);

                            Intent lineIntent = ChartFactory.getTimeChartIntent(context, dataset, rRenderer,"dd/MM/yy","Reports");
                           return lineIntent;

错误日志: -

08-15 12:59:14.230: E/EGL_emulation(1694): rcCreateContext returned 0
08-15 12:59:14.230: E/EGL_emulation(1694): tid 1694: eglCreateContext(881): error 0x3003 (EGL_BAD_ALLOC)
08-15 12:59:14.320: E/libEGL(1694): eglMakeCurrent:493 error 3009 (EGL_BAD_MATCH)
08-15 12:59:14.330: E/ViewRootImpl(1694): OutOfResourcesException initializing HW surface
08-15 12:59:14.330: E/ViewRootImpl(1694): android.view.Surface$OutOfResourcesException: eglMakeCurrent failed EGL_BAD_MATCH
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.view.HardwareRenderer$GlRenderer.createEglSurface(HardwareRenderer.java:920)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.view.HardwareRenderer$GlRenderer.initialize(HardwareRenderer.java:748)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1505)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.view.Choreographer.doCallbacks(Choreographer.java:555)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.view.Choreographer.doFrame(Choreographer.java:525)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.os.Handler.handleCallback(Handler.java:615)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.os.Handler.dispatchMessage(Handler.java:92)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.os.Looper.loop(Looper.java:137)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at android.app.ActivityThread.main(ActivityThread.java:4745)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at java.lang.reflect.Method.invokeNative(Native Method)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at java.lang.reflect.Method.invoke(Method.java:511)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-15 12:59:14.330: E/ViewRootImpl(1694):   at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:1)

您是在模拟器或真实设备上测试您的应用吗?根据开发人员指南,当您的表面无法重新调整大小或创建时,会抛出异常。您可以尝试更改模拟器设置(允许更多内存)或尝试使用真实设备。