Me presento, soy un joven desarrollador de Android, estoy aprendiendo solo, tengo varios años de experiencia programando, pero ya se sabe, las cosas avanzan muy rápido y uno no se puede quedar atrás.
Estoy metiendo estaciones en el maps a través de un json, lo parseo y después meto estas estaciones en un array list, peero algo debo de hacer mal, porque tanto mi móvil como el emulador cuando cargan las estaciones en el mapa van a pedales, son en total 270
He probado a poner con 10 (todo ok), pero cuando le pones 30 la cosa empieza a ir lento, por los iconos no es porque los he cambiado, además son pngs y si le pones 100 o las 270 estaciones que hay, ya olvídate.
¿Alguna idea?os pongo el código, que controla la inclusión de las estaciones
- Código: Seleccionar todo
...
private ParticularItemizedOverlay itemizedoverlayBicis;
....
Drawable drawableBicis = this.getResources().getDrawable(R.drawable.estaciones);
itemizedoverlayBicis = new ParticularItemizedOverlay(drawableBicis,this);
....
btnBicis.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
estaciones = new Bicis().parsearJsonBicis();
Iteratori = estaciones.iterator();
ListmapOverlays = mapa.getOverlays();//añadimos la nueva capa
/*
while(i.hasNext()){
Estacion est = (Estacion) i.next();
//creamos el punto a insertar
double lat = Double.valueOf(est.getLat()) * 1E6;
double lon = Double.valueOf(est.getLng()) * 1E6;
GeoPoint point = new GeoPoint((int) (lat),(int) (lon));
OverlayItem overlayitem = new OverlayItem(point, "", null);
itemizedoverlayBicis.addOverlayBicis(overlayitem);
mapOverlays.add(itemizedoverlayBicis);
}*/
for (int j = 0; j<100;j++){
Estacion est = estaciones.get(j);
double lat = Double.valueOf(est.getLat()) * 1E6;
double lon = Double.valueOf(est.getLng()) * 1E6;
GeoPoint point = new GeoPoint((int) (lat),(int) (lon));
OverlayItem overlayitem = new OverlayItem(point, "", null);
itemizedoverlayBicis.addOverlayBicis(overlayitem);
mapOverlays.add(itemizedoverlayBicis);
}
mapa.postInvalidate();
}
});
....
No se si es correcto, pero lo que hago es crear una capa y en esta pinto todos los puntos.
Alguna idea por esa lentitud?
Saludos y gracias![/code]