[android] - logo placement for creating a Mapview programatically (#9094)

* [android] - Correct logo placement for creating a Mapview programatically, fixup non default placements

* Fixed NIGHTY_TWO_DP typo to NINETY_TWO_DP
This commit is contained in:
Tobrun
2017-05-26 10:32:11 +02:00
committed by GitHub
parent 35f548a07d
commit c392c678ab
4 changed files with 25 additions and 13 deletions

View File

@@ -36,7 +36,7 @@ import java.util.Arrays;
public class MapboxMapOptions implements Parcelable {
private static final float FOUR_DP = 4f;
private static final float EIGHTY_NINE_DP = 92f;
private static final float NINETY_TWO_DP = 92f;
private CameraPosition cameraPosition;
@@ -241,7 +241,7 @@ public class MapboxMapOptions implements Parcelable {
R.styleable.mapbox_MapView_mapbox_uiAttributionGravity, Gravity.BOTTOM));
mapboxMapOptions.attributionMargins(new int[] {
(int) (typedArray.getDimension(R.styleable.mapbox_MapView_mapbox_uiAttributionMarginLeft,
EIGHTY_NINE_DP * pxlRatio)),
NINETY_TWO_DP * pxlRatio)),
(int) (typedArray.getDimension(R.styleable.mapbox_MapView_mapbox_uiAttributionMarginTop,
FOUR_DP * pxlRatio)),
(int) (typedArray.getDimension(R.styleable.mapbox_MapView_mapbox_uiAttributionMarginRight,

View File

@@ -193,12 +193,16 @@ public final class UiSettings {
private void initialiseLogo(MapboxMapOptions options, Resources resources) {
setLogoEnabled(options.getLogoEnabled());
setLogoGravity(options.getLogoGravity());
int[] logoMargins = options.getLogoMargins();
setLogoMargins(resources, options.getLogoMargins());
}
private void setLogoMargins(Resources resources, int[]logoMargins) {
if (logoMargins != null) {
setLogoMargins(logoMargins[0], logoMargins[1], logoMargins[2], logoMargins[3]);
} else {
int twoDp = (int) resources.getDimension(R.dimen.mapbox_two_dp);
setLogoMargins(twoDp, twoDp, twoDp, twoDp);
// user did not specify margins when programmatically creating a map
int fourDp = (int) resources.getDimension(R.dimen.mapbox_four_dp);
setLogoMargins(fourDp, fourDp, fourDp, fourDp);
}
}
@@ -223,17 +227,25 @@ public final class UiSettings {
private void initialiseAttribution(Context context, MapboxMapOptions options) {
setAttributionEnabled(options.getAttributionEnabled());
setAttributionGravity(options.getAttributionGravity());
int[] attributionMargins = options.getAttributionMargins();
if (attributionMargins != null) {
setAttributionMargins(attributionMargins[0], attributionMargins[1],
attributionMargins[2], attributionMargins[3]);
}
setAttributionMargins(context, options.getAttributionMargins());
int attributionTintColor = options.getAttributionTintColor();
setAttributionTintColor(attributionTintColor != -1
? attributionTintColor : ColorUtils.getPrimaryColor(context));
}
private void setAttributionMargins(Context context, int[] attributionMargins) {
if (attributionMargins != null) {
setAttributionMargins(attributionMargins[0], attributionMargins[1],
attributionMargins[2], attributionMargins[3]);
} else {
// user did not specify margins when programmatically creating a map
Resources resources = context.getResources();
int margin = (int) resources.getDimension(R.dimen.mapbox_four_dp);
int leftMargin = (int) resources.getDimension(R.dimen.mapbox_ninety_two_dp);
setAttributionMargins(leftMargin, margin, margin, margin);
}
}
private void saveAttribution(Bundle outState) {
outState.putInt(MapboxConstants.STATE_ATTRIBUTION_GRAVITY, getAttributionGravity());
outState.putInt(MapboxConstants.STATE_ATTRIBUTION_MARGIN_LEFT, getAttributionMarginLeft());

View File

@@ -13,6 +13,6 @@
<dimen name="mapbox_eight_dp">8dp</dimen>
<dimen name="mapbox_ten_dp">10dp</dimen>
<dimen name="mapbox_sixteen_dp">16dp</dimen>
<dimen name="mapbox_ninety_five_dp">95dp</dimen>
<dimen name="mapbox_ninety_two_dp">92dp</dimen>
<dimen name="mapbox_my_locationview_outer_circle">18dp</dimen>
</resources>

View File

@@ -16,6 +16,6 @@
app:mapbox_styleUrl="@string/mapbox_style_mapbox_streets"
app:mapbox_uiAttributionGravity="top|end"
app:mapbox_uiLogoGravity="top|end"
app:mapbox_uiLogoMarginRight="10dp"/>
app:mapbox_uiLogoMarginRight="28dp"/>
</RelativeLayout>