AchartEngine折线图Xaxis Android

我在 android上工作achartengine并完成所有的工作我在线图中遇到一个问题我提到了xaxis标签,但它的显示像2,4,6,8,10,12等等与我的xaxis标签覆盖,我想要在xaxis中隐藏2,12个标签.如果你不明白,请参见下图:

这是完整的代码:

public class ChartExample extends Activity {
    private GraphicalView mChartView;

    XYMultipleSeriesRenderer renderer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_chart);

        LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout2);

        String[] titles = new String[] { "spens1","2second" };
        List<double[]> x = new ArrayList<double[]>();
        x.add(new double[] { 1,2,3,5,7,9,11,12 });
        x.add(new double[] { 1,12 });
        // }
        List<double[]> values = new ArrayList<double[]>();
        values.add(new double[] { 9,15,19,23,26,25,22,18,13,10 });
        values.add(new double[] { 11,21,40,12,24,20,12 });


        int[] colors = new int[] { Color.BLUE,Color.RED};
        PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE,PointStyle.CIRCLE};

        renderer = buildRenderer(colors,styles);

        int length = renderer.getSeriesRendererCount();
        for (int i = 0; i < length; i++) {
            ((XYSeriesRenderer) renderer.getSeriesRendererAt(i))
                    .setFillPoints(true);
        }

        setChartSettings(renderer,"SCORE CARD VIEW","Attetempts","Marks Scored",12.5,45,Color.LTGRAY,Color.LTGRAY);
        renderer.setXLabels(12);
        renderer.setYLabels(10);
        renderer.setShowGrid(false);
        renderer.setXLabelsAlign(Align.CENTER);
        renderer.setYLabelsAlign(Align.CENTER);

        //renderer.setZoomButtonsVisible(true);
        //renderer.setPanLimits(new double[] { 0,40 });
        //renderer.setZoomLimits(new double[] { 0,40 });
        renderer.setPanEnabled(false,false);
        renderer.setZoomEnabled(false,false);
        renderer.setShowLegend(false);       


        for(int k=0;k<12;k++)
        {
            renderer.addXTextLabel(k+1,"test");
        }

        if (mChartView == null) 
        {
            Log.d("Oncreate ","if (mChartView == null)");
            mChartView = ChartFactory.getLineChartView(this,mDataset(titles,x,values),renderer);
            layout.addView(mChartView,new LayoutParams(
                    LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));




        } 
        else 
        {
            mChartView.repaint();
            Log.d("Oncreate ","if (mChartView != null)");
        }
    }

    private void setChartSettings(XYMultipleSeriesRenderer renderer3,String title,String xTitle,String yTitle,double xMin,double xMax,double yMin,double yMax,int axesColor,int labelsColor) {
        // TODO Auto-generated method stub

        renderer3.setChartTitle(title);
        renderer3.setXTitle(xTitle);
        renderer3.setYTitle(yTitle);
        renderer3.setXAxisMin(xMin);
        renderer3.setXAxisMax(xMax);
        renderer3.setYAxisMin(yMin);
        renderer3.setYAxisMax(yMax);
        renderer3.setAxesColor(axesColor);
        renderer3.setLabelsColor(labelsColor);
    }

    private XYMultipleSeriesRenderer buildRenderer(int[] colors,PointStyle[] styles) {
        // TODO Auto-generated method stub
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        setRenderer(renderer,colors,styles);
        return renderer;
    }

    private void setRenderer(XYMultipleSeriesRenderer renderer2,int[] colors,PointStyle[] styles) {
        // TODO Auto-generated method stub
        renderer2.setAxisTitleTextSize(16);
        renderer2.setChartTitleTextSize(20);
        renderer2.setLabelsTextSize(15);
        renderer2.setLegendTextSize(15);
        renderer2.setPointSize(5f);
        renderer2.setMargins(new int[] { 20,30,20 });
        int length = colors.length;
        for (int i = 0; i < length; i++) {
            XYSeriesRenderer r = new XYSeriesRenderer();
            r.setColor(colors[i]);
            r.setPointStyle(styles[i]);
            renderer2.addSeriesRenderer(r);
        }
    }

    private XYMultipleSeriesDataset mDataset(String[] titles,List<double[]> xValues,List<double[]> yValues) {
        // TODO Auto-generated method stub
        XYMultipleSeriesDataset dataset1 = new XYMultipleSeriesDataset();
        addXYSeries(dataset1,titles,xValues,yValues,0);
        return dataset1;
    }

    private void addXYSeries(XYMultipleSeriesDataset dataset,String[] titles,List<double[]> yValues,int scale) {
        // TODO Auto-generated method stub

        int length = titles.length;
        for (int i = 0; i < length; i++) {


            double[] xV = xValues.get(i);
            XYSeries series = new XYSeries(titles[i],scale);
            double[] yV = yValues.get(i);
            int seriesLength = xV.length;
            for (int k = 0; k < seriesLength; k++) {
                    series.add(xV[k],yV[k]);
            }
            dataset.addSeries(series);
        }



    }

}

能帮到我了吗?

解决方法

最后我得到了解决方案我已经尝试过以下代码:
renderer.setXLabels(0);

和完整的类代码:

package com.example.lockexample;

import java.util.ArrayList;
import java.util.List;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;

import android.app.Activity;
import android.graphics.Color;
import android.graphics.Paint.Align;
import android.os.Bundle;
import android.util.Log;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;

public class ChartExample extends Activity {
    private GraphicalView mChartView;

    XYMultipleSeriesRenderer renderer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_chart);

        LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout2);

        String[] titles = new String[] { "spens1",Color.LTGRAY);
        //renderer.setXLabels(12);
        renderer.setYLabels(10);
        renderer.setXLabels(0);
        renderer.setShowGrid(true);
        renderer.setXLabelsAlign(Align.CENTER);
        renderer.setYLabelsAlign(Align.RIGHT);
        renderer.setMargins(new int[] { 25,35,15 });
        //renderer.setZoomButtonsVisible(true);
        //renderer.setPanLimits(new double[] { 0,false);

        renderer.setMarginsColor(Color.parseColor("#EEEDED"));
        renderer.setXLabelsColor(Color.BLACK);
        renderer.setYLabelsColor(0,Color.BLACK);

        renderer.setApplyBackgroundColor(true);
        renderer.setBackgroundColor(Color.parseColor("#FBFBFC"));
        //renderer.setShowLegend(false);       


        for(int k=0;k<12;k++)
        {
            renderer.addXTextLabel(k+1,int labelsColor) {
        // TODO Auto-generated method stub

        renderer3.setChartTitle(title);
        renderer3.setXTitle(xTitle);
        renderer3.setYTitle(yTitle);
        renderer3.setXAxisMin(xMin);
        renderer3.setXAxisMax(xMax);
        renderer3.setYAxisMin(yMin);
        renderer3.setYAxisMax(yMax);
        renderer3.setAxesColor(axesColor);
        renderer3.setLabelsColor(labelsColor);

    }

    private XYMultipleSeriesRenderer buildRenderer(int[] colors,PointStyle[] styles) {
        // TODO Auto-generated method stub
        renderer2.setAxisTitleTextSize(16);
        renderer2.setChartTitleTextSize(20);
        renderer2.setLabelsTextSize(15);
        renderer2.setLegendTextSize(15);
        renderer2.setPointSize(5f);
        //renderer2.setMargins(new int[] { 20,20 });
        renderer2.setMargins(new int[] { 25,15 });

        int length = colors.length;
        for (int i = 0; i < length; i++) {
            XYSeriesRenderer r = new XYSeriesRenderer();
            r.setColor(colors[i]);
            r.setPointStyle(styles[i]);
            renderer2.addSeriesRenderer(r);
        }
    }

    private XYMultipleSeriesDataset mDataset(String[] titles,yV[k]);
            }
            dataset.addSeries(series);
        }



    }

}

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...