Update look and feel
This commit is contained in:
parent
ea5909882b
commit
76996469da
2 changed files with 40 additions and 28 deletions
|
@ -126,12 +126,12 @@ public class MapActivityLayers {
|
||||||
// 5.5 transport info layer
|
// 5.5 transport info layer
|
||||||
transportInfoLayer = new TransportInfoLayer(TransportRouteHelper.getInstance());
|
transportInfoLayer = new TransportInfoLayer(TransportRouteHelper.getInstance());
|
||||||
mapView.addLayer(transportInfoLayer, 5.5f);
|
mapView.addLayer(transportInfoLayer, 5.5f);
|
||||||
// 6. point navigation layer
|
// 6. point location layer
|
||||||
navigationLayer = new PointNavigationLayer();
|
|
||||||
mapView.addLayer(navigationLayer, 6);
|
|
||||||
// 7. point location layer
|
|
||||||
locationLayer = new PointLocationLayer();
|
locationLayer = new PointLocationLayer();
|
||||||
mapView.addLayer(locationLayer, 7);
|
mapView.addLayer(locationLayer, 6);
|
||||||
|
// 7. point navigation layer
|
||||||
|
navigationLayer = new PointNavigationLayer();
|
||||||
|
mapView.addLayer(navigationLayer, 7);
|
||||||
// 8. map info layer
|
// 8. map info layer
|
||||||
mapInfoLayer = new MapInfoLayer(activity, routeLayer);
|
mapInfoLayer = new MapInfoLayer(activity, routeLayer);
|
||||||
mapView.addLayer(mapInfoLayer, 8);
|
mapView.addLayer(mapInfoLayer, 8);
|
||||||
|
|
|
@ -22,6 +22,7 @@ public class PointLocationLayer implements OsmandMapLayer {
|
||||||
|
|
||||||
private Paint locationPaint;
|
private Paint locationPaint;
|
||||||
private Paint area;
|
private Paint area;
|
||||||
|
private Paint aroundArea;
|
||||||
private Paint headingPaint;
|
private Paint headingPaint;
|
||||||
|
|
||||||
protected Location lastKnownLocation = null;
|
protected Location lastKnownLocation = null;
|
||||||
|
@ -44,6 +45,12 @@ public class PointLocationLayer implements OsmandMapLayer {
|
||||||
area.setColor(Color.BLUE);
|
area.setColor(Color.BLUE);
|
||||||
area.setAlpha(40);
|
area.setAlpha(40);
|
||||||
|
|
||||||
|
aroundArea = new Paint();
|
||||||
|
aroundArea.setColor(Color.rgb(112, 124, 220));
|
||||||
|
aroundArea.setStyle(Style.STROKE);
|
||||||
|
aroundArea.setStrokeWidth(1);
|
||||||
|
aroundArea.setAntiAlias(true);
|
||||||
|
|
||||||
headingPaint = new Paint();
|
headingPaint = new Paint();
|
||||||
headingPaint.setColor(Color.BLUE);
|
headingPaint.setColor(Color.BLUE);
|
||||||
headingPaint.setAlpha(50);
|
headingPaint.setAlpha(50);
|
||||||
|
@ -66,39 +73,44 @@ public class PointLocationLayer implements OsmandMapLayer {
|
||||||
|
|
||||||
|
|
||||||
private RectF getHeadingRect(int locationX, int locationY){
|
private RectF getHeadingRect(int locationX, int locationY){
|
||||||
int rad = Math.min(3*view.getWidth()/8, 3*view.getHeight()/8);
|
int rad = Math.min(3 * view.getWidth() / 8, 3 * view.getHeight() / 8);
|
||||||
return new RectF(locationX - rad, locationY - rad, locationX + rad, locationY + rad);
|
return new RectF(locationX - rad, locationY - rad, locationX + rad, locationY + rad);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDraw(Canvas canvas, RectF latLonBounds, RectF tilesRect, boolean nightMode) {
|
public void onDraw(Canvas canvas, RectF latLonBounds, RectF tilesRect, boolean nightMode) {
|
||||||
|
// draw
|
||||||
|
if(lastKnownLocation == null || view == null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int locationX = view.getMapXForPoint(lastKnownLocation.getLongitude());
|
||||||
|
int locationY = view.getMapYForPoint(lastKnownLocation.getLatitude());
|
||||||
|
|
||||||
|
int radius = MapUtils.getLengthXFromMeters(view.getZoom(), view.getLatitude(), view.getLongitude(),
|
||||||
|
lastKnownLocation.getAccuracy(), view.getTileSize(), view.getWidth());
|
||||||
|
if (radius > RADIUS * dm.density) {
|
||||||
|
int allowedRad = Math.min(view.getWidth() / 2, view.getHeight() / 2);
|
||||||
|
canvas.drawCircle(locationX, locationY, Math.min(radius, allowedRad), area);
|
||||||
|
canvas.drawCircle(locationX, locationY, Math.min(radius, allowedRad), aroundArea);
|
||||||
|
}
|
||||||
|
// draw bearing/direction/location
|
||||||
if (isLocationVisible(lastKnownLocation)) {
|
if (isLocationVisible(lastKnownLocation)) {
|
||||||
checkAppMode(view.getSettings().getApplicationMode());
|
checkAppMode(view.getSettings().getApplicationMode());
|
||||||
|
|
||||||
int locationX = view.getMapXForPoint(lastKnownLocation.getLongitude());
|
|
||||||
int locationY = view.getMapYForPoint(lastKnownLocation.getLatitude());
|
|
||||||
|
|
||||||
int radius = MapUtils.getLengthXFromMeters(view.getZoom(), view.getLatitude(), view.getLongitude(),
|
|
||||||
lastKnownLocation.getAccuracy(), view.getTileSize(), view.getWidth());
|
|
||||||
boolean isBearing = lastKnownLocation.hasBearing();
|
boolean isBearing = lastKnownLocation.hasBearing();
|
||||||
if(!isBearing){
|
if (!isBearing) {
|
||||||
canvas.drawBitmap(locationIcon, locationX - locationIcon.getWidth() / 2,
|
canvas.drawBitmap(locationIcon, locationX - locationIcon.getWidth() / 2, locationY - locationIcon.getHeight() / 2,
|
||||||
locationY - locationIcon.getHeight() / 2, locationPaint);
|
locationPaint);
|
||||||
}
|
|
||||||
if (radius > RADIUS * dm.density) {
|
|
||||||
canvas.drawCircle(locationX, locationY, radius, area);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(heading != null){
|
if (heading != null) {
|
||||||
canvas.drawArc(getHeadingRect(locationX, locationY),
|
canvas.drawArc(getHeadingRect(locationX, locationY), heading - HEADING_ANGLE / 2 - 90, HEADING_ANGLE, true, headingPaint);
|
||||||
heading - HEADING_ANGLE/ 2 - 90, HEADING_ANGLE, true, headingPaint);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isBearing){
|
if (isBearing) {
|
||||||
float bearing = lastKnownLocation.getBearing();
|
float bearing = lastKnownLocation.getBearing();
|
||||||
canvas.rotate(bearing - 90, locationX, locationY);
|
canvas.rotate(bearing - 90, locationX, locationY);
|
||||||
canvas.drawBitmap(bearingIcon, locationX - bearingIcon.getWidth() / 2,
|
canvas.drawBitmap(bearingIcon, locationX - bearingIcon.getWidth() / 2, locationY - bearingIcon.getHeight() / 2,
|
||||||
locationY - bearingIcon.getHeight() / 2, locationPaint);
|
locationPaint);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue