diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 6e54b57..52e3e76 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -27,6 +27,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; +import android.graphics.Paint; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.location.Criteria; @@ -68,7 +69,9 @@ import com.db.chart.model.LineSet; import com.db.chart.view.AxisController; +import com.db.chart.view.ChartView; import com.db.chart.view.LineChartView; +import com.db.chart.view.animation.Animation; import org.osmdroid.api.IMapController; import org.osmdroid.bonuspack.overlays.Marker; @@ -398,14 +401,17 @@ float[] elevationDataPoints = new float[dbPoints.size()]; String[] elevationDataPointsNames = new String[dbPoints.size()]; double min = Double.MAX_VALUE; - for(DbGeoPoint dbGeoPoint : dbPoints) { - pathPoints.add(new GeoPoint(dbGeoPoint.getLat(), dbGeoPoint.getLon(), dbGeoPoint.getAlt())); - if(dbGeoPoint.getAlt() < min) min = dbGeoPoint.getAlt(); - } + double max = Double.MIN_VALUE; for(int i=0; i< dbPoints.size(); i++) { DbGeoPoint dbGeoPoint = dbPoints.get(i); - elevationDataPoints[i] = (int) (Math.random() * 100);//dbGeoPoint.getAlt() - min); + double alt = dbGeoPoint.getAlt(); + pathPoints.add(new GeoPoint(dbGeoPoint.getLat(), dbGeoPoint.getLon(), alt)); + //TODO REMOVE + alt = (int) (Math.random() * 100) + 40; + elevationDataPoints[i] = (int) alt; elevationDataPointsNames[i] = i+""; + if(alt < min) min = alt; + if(alt > max) max = alt; } LayoutInflater inflater = getLayoutInflater(); View rowView = inflater.inflate(R.layout.hike_list_detail, null, true); @@ -446,13 +452,22 @@ lineSet.setDotsRadius(6); lineSet.setDotsStrokeThickness(3); lineSet.setThickness(4); - //elevationProfileNew.setXAxis(false); + int minDisp = (int) min; + int maxDisp = (int) max; + int padding = (maxDisp-minDisp)/10; + minDisp = Math.max(0, minDisp-padding); + maxDisp += padding; + minDisp = Math.max(0, minDisp - (minDisp % 10)); + maxDisp += (10 - (maxDisp % 10)); + int step = (maxDisp - minDisp)/2; + elevationProfileNew.setAxisBorderValues(minDisp, maxDisp, step); elevationProfileNew.setXLabels(AxisController.LabelPosition.NONE); - //elevationProfileNew.setYLabels(AxisController.LabelPosition.NONE); - elevationProfileNew.setStep(20); + elevationProfileNew.setXAxis(false); elevationProfileNew.setYAxis(false); + elevationProfileNew.setGrid(ChartView.GridType.HORIZONTAL, new Paint()); elevationProfileNew.addData(lineSet); - elevationProfileNew.show(); + Animation anim = new Animation(5); + elevationProfileNew.show(anim); hikeMap.setTileSource(TileSourceFactory.MAPNIK); hikeMap.setBuiltInZoomControls(true); hikeMap.setMultiTouchControls(true);