diff options
author | tobrun <tobrun.van.nuland@gmail.com> | 2018-06-25 13:36:57 +0200 |
---|---|---|
committer | Tobrun <tobrun@mapbox.com> | 2018-06-27 19:11:48 +0200 |
commit | abca28c66bbce4ff4d8fa5cb42f9abadfe8d3d5b (patch) | |
tree | c6feacb52869ec30d1b888ba74591d4b5b57e864 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox | |
parent | 192bee256b3d767afca6c6f4c1161b0e931e5592 (diff) | |
download | qtlocation-mapboxgl-abca28c66bbce4ff4d8fa5cb42f9abadfe8d3d5b.tar.gz |
[android] - range alpha between 0 and 1 with android color conversion
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox')
3 files changed, 29 insertions, 13 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java index 72e8187b96..1aa0ce9093 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java @@ -213,7 +213,7 @@ public class Expression { * @return the color expression */ public static Expression color(@ColorInt int color) { - int[] rgba = PropertyFactory.colorToRgbaArray(color); + float[] rgba = PropertyFactory.colorToRgbaArray(color); return rgba(rgba[0], rgba[1], rgba[2], rgba[3]); } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java index 5338fb84f6..ad603d356e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java @@ -6,6 +6,7 @@ import android.support.annotation.ColorInt; import com.mapbox.mapboxsdk.style.expressions.Expression; +import java.text.DecimalFormat; import java.util.Locale; /** @@ -2397,22 +2398,29 @@ public class PropertyFactory { /** * Converts Android color int to "rbga(r, g, b, a)" String equivalent. + * <p> + * Alpha value will be converted from 0-255 range to 0-1. + * </p> * * @param color Android color int * @return String rgba color */ public static String colorToRgbaString(@ColorInt int color) { - return String.format(Locale.US, "rgba(%d, %d, %d, %d)", - (color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, (color >> 24) & 0xFF); + String alpha = new DecimalFormat("#.###").format(((float)((color >> 24) & 0xFF)) / 255.0f); + return String.format(Locale.US, "rgba(%d, %d, %d, %s)", + (color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, alpha); } /** - * Converts Android color int to rgba int array. + * Converts Android color int to rgba float array. + * <p> + * Alpha value will be converted from 0-255 range to 0-1. + * </p> * * @param color Android color int * @return int rgba array */ - public static int[] colorToRgbaArray(@ColorInt int color) { - return new int[] {(color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, (color >> 24) & 0xFF}; + public static float[] colorToRgbaArray(@ColorInt int color) { + return new float[] {(color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, ((color >> 24) & 0xFF) / 255.0f}; } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/property_factory.java.ejs b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/property_factory.java.ejs index ce0489409c..2fb51f4a47 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/property_factory.java.ejs +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/property_factory.java.ejs @@ -10,6 +10,7 @@ import android.support.annotation.ColorInt; import com.mapbox.mapboxsdk.style.expressions.Expression; +import java.text.DecimalFormat; import java.util.Locale; /** @@ -87,22 +88,29 @@ public class PropertyFactory { <% } -%> /** * Converts Android color int to "rbga(r, g, b, a)" String equivalent. + * <p> + * Alpha value will be converted from 0-255 range to 0-1. + * </p> * * @param color Android color int * @return String rgba color */ public static String colorToRgbaString(@ColorInt int color) { - return String.format(Locale.US, "rgba(%d, %d, %d, %d)", - (color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, (color >> 24) & 0xFF); + String alpha = new DecimalFormat("#.###").format(((float)((color >> 24) & 0xFF)) / 255.0f); + return String.format(Locale.US, "rgba(%d, %d, %d, %s)", + (color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, alpha); } /** - * Converts Android color int to rgba int array. + * Converts Android color int to rgba float array. + * <p> + * Alpha value will be converted from 0-255 range to 0-1. + * </p> * * @param color Android color int * @return int rgba array */ - public static int[] colorToRgbaArray(@ColorInt int color) { - return new int[] {(color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, (color >> 24) & 0xFF}; + public static float[] colorToRgbaArray(@ColorInt int color) { + return new float[] {(color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, ((color >> 24) & 0xFF) / 255.0f}; } -} +}
\ No newline at end of file |