package org.osmdroid.samplefragments.layouts;
import android.content.Context;
import android.os.Build;
import android.util.DisplayMetrics;
import org.osmdroid.samplefragments.BaseSampleFragment;
import org.osmdroid.views.overlay.ScaleBarOverlay;
/**
* created on 1/8/2017.
*
* @author Alex O'Ree
*/
public class ScaleBarOnBottom extends BaseSampleFragment {
@Override
public String getSampleTitle() {
return "Scale Bar on the bottom";
}
@Override
public void addOverlays(){
super.addOverlays();
final Context context = this.getActivity();
final DisplayMetrics dm = context.getResources().getDisplayMetrics();
ScaleBarOverlay scaleBarOverlay = new ScaleBarOverlay(mMapView);
scaleBarOverlay.setCentred(true);
//i hate this very much, but it seems as if certain versions of android and/or
//device types handle screen offsets differently
//60 on api10 is right at the bottom
//api15 and up, 85 is right at the bottom
//we are also adding 20dp padding for the overlay overlay which is added by the super class
if (Build.VERSION.SDK_INT <= 10)
scaleBarOverlay.setScaleBarOffset(dm.widthPixels / 2, dm.heightPixels - (int)(80*dm.density));
else
scaleBarOverlay.setScaleBarOffset(dm.widthPixels / 2, dm.heightPixels - (int)(105*dm.density));
scaleBarOverlay.setUnitsOfMeasure(ScaleBarOverlay.UnitsOfMeasure.imperial);
mMapView.getOverlayManager().add(scaleBarOverlay);
}
}