Gráfico de línea de AchartEngine Xaxis Android

Estoy trabajando achartengine en android y completado todos los trabajos tengo un problema de cara en la carta de línea menciono la etiqueta de xaxis, pero es muestra como 2,4,6,8,10,12 y así sucesivamente con la superposición con mi etiqueta xaxis y quiero Para ocultar etiquetas 2,4,6,8,10,12 en xaxis. Si u no entiende ver dado abajo figura:

Introduzca aquí la descripción de la imagen

Aquí está el código completo:

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, 4, 5, 6, 7, 8, 9, 10, 11, 12 }); x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }); // } List<double[]> values = new ArrayList<double[]>(); values.add(new double[] { 9, 10, 11, 15, 19, 23, 26, 25, 22, 18, 13, 10 }); values.add(new double[] { 11, 13, 21, 10, 40, 10, 12,15, 24, 20, 15, 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", 0, 12.5, 0, 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, 20, 0, 40 }); //renderer.setZoomLimits(new double[] { 0, 20, 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, 15, 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[]> xValues, 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); } } } 

Puede usted ayudarme con muy apreciado.

Finalmente conseguí la solución que he intentado este código abajo:

 renderer.setXLabels(0); 

Y el código completo de la clase aquí:

 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","2second" }; List<double[]> x = new ArrayList<double[]>(); x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }); x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }); // } List<double[]> values = new ArrayList<double[]>(); values.add(new double[] { 9, 10, 11, 15, 19, 23, 26, 25, 22, 18, 13, 10 }); values.add(new double[] { 11, 13, 21, 10, 40, 10, 12,15, 24, 20, 15, 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", 0, 12.5, 0, 45, Color.LTGRAY, 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, 10, 15 }); //renderer.setZoomButtonsVisible(true); //renderer.setPanLimits(new double[] { 0, 20, 0, 40 }); //renderer.setZoomLimits(new double[] { 0, 20, 0, 40 }); renderer.setPanEnabled(false, false); renderer.setZoomEnabled(false, 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,"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, 15, 20 }); renderer2.setMargins(new int[] { 25,35, 10, 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, 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[]> xValues, 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); } } } 

El único código que debe agregar a su código actual son las siguientes dos líneas:

 renderer.setXLabels(RESULT_OK); renderer.clearXTextLabels(); 

Asegúrese de agregar estas instrucciones después de declarar la configuración de procesador, pero ANTES del código en el que estableció las etiquetas de texto de eje X personalizadas.

Dado que tiene varios métodos de renderizado en curso en su programa, debe incluir las dos líneas de código al final de los métodos que implementan un XYMultipleSeriesRenderer. Una vez más, asegúrese de añadir esto en su código antes de implementar sus etiquetas de texto personalizado. 🙂

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.