Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Gráfico de línea de Achartengine

Estoy usando Achartengine para crear un gráfico de líneas. Mi mes actual se muestra sin embargo la segunda línea, el mes pasado, no lo está mostrando. Aquí está la muchacha y el logcat: Así como usted puede ver del logcat mis fechas son correctas y así que es la cuenta del mes anterior. Así que por qué no mostrarme está más allá de mí.

Log Cat:

  • OnSaveInstanceState no funciona
  • ¿Dónde colocar el archivo google-services.json en el proyecto eclipse?
  • Añadir google-services.json en el android studio
  • Autenticación de su cliente en Puntos de extremo de Cloud sin una cuenta de Google
  • Reemplace los caracteres con Image en string y luego seleccione Textview
  • Sugar ORM simplemente no creará tablas
  • 08-07 16:13:43.969: I/PROJECTCARUSO(11734): DEBUG startdate: 2013-07-01 enddate: 2013-07-31 08-07 16:13:43.969: I/PROJECTCARUSO(11734): count: 9 08-07 16:13:43.979: I/PROJECTCARUSO(11734): DEBUG startdate: 2013-08-01 enddate: 2013-08-31 

    Clase:

     public class TempHistoryFragment extends Fragment{ private GraphicalView mChartView; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (container == null) { return null; } Calendar cal = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); SimpleDateFormat month_date = new SimpleDateFormat("MMMMMMMMM"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd",Locale.US); String month_name = month_date.format(cal.getTime()); ArrayList<Integer> xArray = new ArrayList<Integer>(); ArrayList<Integer> yArray = new ArrayList<Integer>(); ArrayList<Integer> xArray2 = new ArrayList<Integer>(); ArrayList<Integer> yArray2 = new ArrayList<Integer>(); cal.add(Calendar.MONTH ,-1); String prev_month_name = month_date.format(cal.getTime()); int daysInMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH); //***********************************************// // Our first data Last MONTH //***********************************************// //start date for cursor //cal.add(Calendar.MONTH, -1); cal.set(Calendar.DATE, 1); String startdate = df.format(cal.getTime()); //end date cal.set(Calendar.DATE, daysInMonth); String enddate = df.format(cal.getTime()); Log.i("PROJECTCARUSO","DEBUG startdate: " + startdate + " enddate: " + enddate); Cursor c = getActivity().getContentResolver().query(StatusProvider.CONTENT_URI_CHARTING, null, "? < " + StatusData.KEY_CHARTING_DATE + " AND ? > " + StatusData.KEY_CHARTING_DATE , new String[] {startdate, enddate}, null); // c.moveToFirst(); Log.i("PROJECTCARUSO","count: " + c.getCount()); if (c.getCount()>0 && c!=null) { while (c.isAfterLast() == false) { if ((isNumeric(c.getString(c.getColumnIndex(StatusData.KEY_CHARTING_TEMPERATURE))))) { java.util.Date date = null; int day = 0; //get date from database String datetest = c.getString(c.getColumnIndex(StatusData.KEY_CHARTING_DATE)); //try to reformat to date. try { date = format.parse(datetest); day = date.getDate(); } catch (java.text.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } xArray.add(day); } c.moveToNext(); } } int[] x = new int[xArray.size()]; for (int i = 0; i < xArray.size(); i++) { x[i] = xArray.get(i); } int[] y = new int[yArray.size()]; for (int i = 0; i < yArray.size(); i++) { y[i] = yArray.get(i); } TimeSeries series = new TimeSeries(prev_month_name); for( int i = 0; i < y.length; i++) { series.add(x[i], y[i]); } //***********************************************// // Our second data THIS MONTH //***********************************************// //start date for cursor cal2.set(Calendar.DATE, 1); String startdate2 = df.format(cal2.getTime()); //end date cal2.set(Calendar.DATE, daysInMonth); String enddate2 = df.format(cal2.getTime()); Log.i("PROJECTCARUSO","DEBUG startdate: " + startdate2 + " enddate: " + enddate2); Cursor c2 = getActivity().getContentResolver().query(StatusProvider.CONTENT_URI_CHARTING, null, "? < " + StatusData.KEY_CHARTING_DATE + " AND ? > " + StatusData.KEY_CHARTING_DATE , new String[] {startdate2, enddate2}, null); // c2.moveToFirst(); if (c2.getCount()>0 && c2!=null) { while (c2.isAfterLast() == false) { if (isNumeric(c2.getString(c2.getColumnIndex(StatusData.KEY_CHARTING_TEMPERATURE)))){ yArray2.add(c2.getInt(c2.getColumnIndex(StatusData.KEY_CHARTING_TEMPERATURE))); java.util.Date date = null; int day = 0; //get date from database String datetest = c2.getString(c2.getColumnIndex(StatusData.KEY_CHARTING_DATE)); //try to reformat to date. try { date = format.parse(datetest); day = date.getDate(); } catch (java.text.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } xArray2.add(day); } c2.moveToNext(); } } int[] x2 = new int[xArray2.size()]; for (int i = 0; i < xArray2.size(); i++) { x2[i] = xArray2.get(i); } int[] y2 = new int[yArray2.size()]; for (int i = 0; i < yArray2.size(); i++) { y2[i] = yArray2.get(i); } TimeSeries series2 = new TimeSeries(month_name); for( int i = 0; i < x2.length; i++) { series2.add(x2[i], y2[i]); } XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); dataset.addSeries(series); dataset.addSeries(series2); XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); // Holds a collection of XYSeriesRenderer and customizes the graph XYSeriesRenderer renderer = new XYSeriesRenderer(); // This will be used to customize line 1 XYSeriesRenderer renderer2 = new XYSeriesRenderer(); // This will be used to customize line 2 mRenderer.addSeriesRenderer(renderer); mRenderer.addSeriesRenderer(renderer2); // Customization time for line 1! renderer.setColor(getResources().getColor(R.color.complementary)); renderer.setPointStyle(PointStyle.SQUARE); renderer.setFillPoints(true); // Customization time for line 2! renderer2.setColor(getResources().getColor(R.color.base)); renderer2.setPointStyle(PointStyle.DIAMOND); renderer2.setFillPoints(true); mChartView = ChartFactory.getLineChartView(getActivity(), dataset, mRenderer); //Set Chart Title and labels mRenderer.setChartTitle("Temperature Tracking"); mRenderer.setChartTitleTextSize(getResources().getDimension(R.dimen.largeText)); mRenderer.setLabelsColor(getResources().getColor(R.color.primaryTextDark)); //YAxis of Temp mRenderer.setYTitle("Temperature", 0); mRenderer.setYAxisMin(80, 0); mRenderer.setYAxisMax(110, 0); mRenderer.setYLabelsAlign(Align.CENTER); mRenderer.setYLabelsColor(0, getResources().getColor(R.color.primaryTextDark)); //XAxis of month mRenderer.setXLabels(20); mRenderer.setXTitle(month_name); mRenderer.setXAxisMin(1); mRenderer.setXAxisMax(daysInMonth); mRenderer.setXLabelsColor(getResources().getColor(R.color.primaryTextDark)); //Set the display mRenderer.setMarginsColor(getResources().getColor(R.color.transparent)); mRenderer.setShowCustomTextGrid(true); mRenderer.setAxisTitleTextSize(getResources().getDimension(R.dimen.mediumText)); mRenderer.setLabelsTextSize(getResources().getDimension(R.dimen.smallMediumText)); mRenderer.setPanEnabled(false, false); mRenderer.setClickEnabled(false); mRenderer.setZoomEnabled(false, false); return mChartView; } @SuppressWarnings("unused") public static boolean isNumeric(String str) { try { double d = Double.parseDouble(str); } catch(NumberFormatException nfe) { return false; } return true; } } 

    Ah, y aquí están esos colores:

      <color name ="base">#51bbc2</color> <color name ="complementary">#C25951</color> 

    El resultado

  • Android: detectar el evento de clic en el espacio vacío de gridview dentro de linearlayout
  • Cómo ocultar la barra de la tecla de función en el teléfono Android?
  • ¿Cómo usar la cámara de Android o la API de la cámara2 para admitir versiones antiguas y nuevas de la API sin notas de reprobación?
  • No puede encontrar zip-align cuando publica la aplicación
  • Captura cuando la aplicación de Android pasó al fondo
  • Advertencia de infracción de la política de desarrollador de Google Play: Acción necesaria
  • One Solution collect form web for “Gráfico de línea de Achartengine”

    Gracias @Dan me llevas a la solución. Fui y registraron todos los puntos para asegurarse de que todos los valores correctos se estaban colocando en la matriz derecha y vienen a averiguar yArray.add(c.getInt(c.getColumnIndex(StatusData.KEY_CHARTING_TEMPERATURE))); De alguna manera se eliminó. Así que ahora funciona! ¡Hurra!

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