Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android acharengine-一旦数据点不在可见区域,图形就会消失?_Android_Opengl Es_Graph_Rendering_Achartengine - Fatal编程技术网

Android acharengine-一旦数据点不在可见区域,图形就会消失?

Android acharengine-一旦数据点不在可见区域,图形就会消失?,android,opengl-es,graph,rendering,achartengine,Android,Opengl Es,Graph,Rendering,Achartengine,我用一个可以平移、缩放等的阿卡廷引擎制作了正常的折线图 最初,这张图表正在潘上消失 我得到的OpenGl渲染警告路径太大,无法渲染到纹理中 我把硬件加速设置为false,这就解决了问题 现在,当我缩放图形时,如果数据点超出可见区域,图形就会消失,它会将轴设置为0000-0-0000 请参阅随附的屏幕截图 当点位于可见区域中时:- 缩放时,点超出可见区域:- 这是图书馆的问题吗。 如果是,有人有什么解决办法吗 编辑:---- 下面是一些代码: mRenderer.setAppl

我用一个可以平移、缩放等的阿卡廷引擎制作了正常的折线图

最初,这张图表正在潘上消失

我得到的OpenGl渲染警告路径太大,无法渲染到纹理中

我把硬件加速设置为false,这就解决了问题

现在,当我缩放图形时,如果数据点超出可见区域,图形就会消失,它会将轴设置为0000-0-0000

请参阅随附的屏幕截图

当点位于可见区域中时:-

缩放时,点超出可见区域:-

这是图书馆的问题吗。 如果是,有人有什么解决办法吗

编辑:----

下面是一些代码:

        mRenderer.setApplyBackgroundColor(true);
    mRenderer.setBackgroundColor(Color.WHITE);
    mRenderer.setMarginsColor(Color.WHITE);
    mRenderer.setAxisTitleTextSize(16);
    mRenderer.setChartTitleTextSize(20);
    mRenderer.setLabelsTextSize(15);
    mRenderer.setLegendTextSize(15);
    mRenderer.setZoomButtonsVisible(false);
    mRenderer.setPointSize(8);
if (mChartView == null) {
        layout = (RelativeLayout) findViewById(R.id.chart);
        leftDate = (TextView) findViewById(R.id.left_date);
        rightDate = (TextView) findViewById(R.id.right_date);

        layout.setEnabled(true);
        mChartView = ChartFactory.getLineChartView(this, mDataset,
                mRenderer);
        // enable the chart click events
        mRenderer.setClickEnabled(true);
        mRenderer.setSelectableBuffer(10);
        String seriesTitle = "Series " + (mDataset.getSeriesCount() + 1);
        // create a new series of data
        XYSeries series = new XYSeries(seriesTitle);
        mDataset.addSeries(series);
        mCurrentSeries = series;
        // create a new renderer for the new series
        XYSeriesRenderer renderer = new XYSeriesRenderer();
        renderer.setColor(Color.BLACK);
        renderer.setPointStyle(PointStyle.CIRCLE);
        renderer.setPointStrokeWidth(5);
        renderer.setShowLegendItem(false);
        renderer.setFillPoints(true);
        renderer.setFillBelowLine(true);
        renderer.setFillBelowLineColor(getResources().getColor(
                R.color.graph_green));
        renderer.setFillPoints(true);
        renderer.setDisplayChartValuesDistance(20);
        mRenderer.addSeriesRenderer(renderer);
        // set some renderer properties

        mCurrentRenderer = renderer;
        mRenderer.setAxisTitleTextSize(16);
        // mRenderer.setChartTitleTextSize(20);
        // mRenderer.setLabelsTextSize(15);
        // mRenderer.setLegendTextSize(15);
        mRenderer.setPanEnabled(true, false);
        mRenderer.setYAxisAlign(Align.LEFT, 0);
        mRenderer.setYLabelsAlign(Align.RIGHT, 0);
        mRenderer.setXLabelsColor(Color.WHITE);
        mRenderer.setApplyBackgroundColor(true);
        mRenderer.setBackgroundColor(Color.WHITE);
        mRenderer.setMarginsColor(Color.WHITE);
        mRenderer.setPointSize(8f);
        mRenderer.setAxesColor(Color.GRAY);
        mRenderer.setLabelsColor(Color.BLACK);
        try {
            FetchWeight fetchWeight = FetchWeightCacheManager
                    .getObject(Controller.getAppBackgroundContext());
            if (fetchWeight.getData().size() != 0) {
                for (int i = 0; i < fetchWeight.getData().size(); i++) {
                    kilo = (long) fetchWeight.getData().get(i).getKilos();
                    weight_date = (long) fetchWeight.getData().get(i)
                            .getTimestamp();
                    if (count == 0) {
                        default_start_date = weight_date - 100000;
                        System.out.println("default start date = "
                                + default_start_date);
                        mCurrentSeries.add(default_start_date, kilo);
                        weights.add(kilo);
                        dates.add(default_start_date);
                        count++;
                    }
                    System.out.println("time:" + weight_date);
                    System.out.println("kilo:" + kilo);
                    mCurrentSeries.add(weight_date, kilo);
                    weights.add(kilo);
                    dates.add(weight_date);

                }
            }
        } catch (Exception e) {
            System.out.println("No weights to fetch :" + e);
        }
        double minx = mRenderer.getXAxisMin();
        double maxx = mRenderer.getXAxisMax();
        System.out.println("min x = " + minx);
        System.out.println("max x = " + maxx);
        mRenderer.setRange(new double[] { default_start_date,
                weight_date + 1000000, kilo - 20, kilo + 20 });
        mY.setText("");
        // repaint the chart such as the newly added point to be visible
        mChartView.repaint();
mrender.setApplyBackgroundColor(真);
mRenderer.setBackgroundColor(颜色:白色);
mrender.setMarginsColor(Color.WHITE);
mrender.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mrender.setLabelsTextSize(15);
mrender.setLegendTextSize(15);
mrender.setZoomButtonsVisible(false);
mrender.设定点大小(8);
如果(mChartView==null){
布局=(RelativeLayout)findViewById(R.id.chart);
leftDate=(TextView)findViewById(R.id.left\u日期);
rightDate=(TextView)findViewById(R.id.right\u日期);
layout.setEnabled(真);
mChartView=ChartFactory.getLineChartView(此,mDataset,
mRenderer);
//启用图表单击事件
mrender.setClickEnabled(真);
mrender.setSelectableBuffer(10);
字符串seriesttle=“Series”+(mDataset.getseriescont()+1);
//创建新的数据系列
XYSeries系列=新的XYSeries(SerieStle);
mDataset.addSeries(系列);
mCurrentSeries=系列;
//为新系列创建新渲染器
XYSeriesRenderer渲染器=新的XYSeriesRenderer();
渲染器.setColor(Color.BLACK);
渲染器.setPointStyle(PointStyle.CIRCLE);
渲染器设置点StrokeWidth(5);
渲染器.setShowLegendItem(false);
渲染器。设置填充点(真);
renderer.setFillBelowLine(true);
renderer.setFillBelowLineColor(getResources().getColor(
R.color.graph_(绿色));
渲染器。设置填充点(真);
渲染器.setDisplayChartValuesDistance(20);
mrender.addseriesrender(渲染器);
//设置一些渲染器属性
mcurrenderer=渲染器;
mrender.setAxisTitleTextSize(16);
//mRenderer.setChartTitleTextSize(20);
//mrender.setLabelsTextSize(15);
//mrender.setLegendTextSize(15);
mrender.setPanEnabled(真、假);
mrender.setyaxisallign(Align.LEFT,0);
mrender.setYLabelsAlign(Align.RIGHT,0);
mrender.setXLabelsColor(Color.WHITE);
mrender.setApplyBackgroundColor(真);
mRenderer.setBackgroundColor(颜色:白色);
mrender.setMarginsColor(Color.WHITE);
mrender.设定点大小(8f);
mrender.setAxesColor(颜色.灰色);
mrender.setLabelsColor(Color.BLACK);
试一试{
FetchWeight FetchWeight=FetchWeightCacheManager
.getObject(Controller.getAppBackgroundContext());
if(fetchWeight.getData().size()!=0){
for(int i=0;i
以下是pan侦听器:

            mChartView.addPanListener(new PanListener() {

            private double timestampdouble;
            private Integer image_index;
            private int mid_value;
            private Double max_double;
            private Double min_double;

            public void panApplied() {
                // customListAdapter.setGraphTouched(true);

                ArrayList<Long> insideweights = new ArrayList<Long>();
                double minx = mRenderer.getXAxisMin();
                double maxx = mRenderer.getXAxisMax();
                long minx_default = (long) minx;
                long maxx_default = (long) maxx;
                // change UI onscrollview minx & maxx
                leftDate.setText("" + getDateFormat(minx_default));
                rightDate.setText("" + getDateFormat(maxx_default));
                new AsyncScroll(minx_default, maxx_default).execute();
                double getmax_weight = get_max_weight();
                double getmin_weight = get_min_weight();
                if (minx_default <= default_start_date) {
                    mRenderer.setRange(new double[] { default_start_date,
                            maxx, getmin_weight - 20, getmax_weight + 20 });

                } else {
                    mRenderer.setRange(new double[] { minx, maxx,
                            getmin_weight - 20, getmax_weight + 20 });
                }



            }
mChartView.addPanListener(新的PanListener(){
私人双倍;
私有整数图像索引;
私有整数中值;
私人双倍最大双倍;
私人双人房;
公共应用程序(){
//customListAdapter.setGraphTouched(true);
ArrayList insideweights=新的ArrayList();
double minx=mrender.getXAxisMin();
double maxx=mrender.getXAxisMax();
长minx_默认值=(长)minx;
long maxx_default=(long)maxx;
//更改CrollView minx和maxx上的UI
leftDate.setText(“+getDateFormat(minx_默认值));
setText(“+getDateFormat(maxx_默认值));
新建AsyncScroll(minx_默认值,maxx_默认值).execute();
双倍最大重量=
FillOutsideLine fill = new FillOutsideLine(FillOutsideLine.Type.BOUNDS_ABOVE);
    fill.setColor(Color.GREEN);
    renderer.addFillOutsideLine(fill );
    double minx = mRenderer.getXAxisMin();
    double maxx = mRenderer.getXAxisMax();
    double miny = mRenderer.getYAxisMin();
    double maxy = mRenderer.getYAxisMax();
    double getmax_weight = get_max_weight();
    double getmin_weight = get_min_weight();
    if (getmax_weight < 0) {
    mRenderer.setRange(new double[] { minx, maxx,miny, maxy });
    } else {
        if (minx_default <= default_start_date) {
        mRenderer.setRange(new double[] {default_start_date,                           maxx,getmin_weight - 20,
                                        getmax_weight + 20 });

                            } else {
                                mRenderer.setRange(new double[] { minx,
                                        maxx, getmin_weight - 20,
                                        getmax_weight + 20 });
                            }
                        }
                   }