Map color filter revised, temp colors added

This commit is contained in:
Arty Bishop committed 2020-09-19 20:19:41 +01:00
1 parent 45ddd0e941
commit c1a2902012
2 files changed
+29 -53

No files matched your search

@@ -95,7 +95,9 @@ class MapOsmFragment : Fragment(R.layout.fragment_map_osm) {
overlayManager.tilesOverlay.loadingLineColor = Color.TRANSPARENT overlayManager.tilesOverlay.loadingLineColor = Color.TRANSPARENT
setScrollableAreaLimitDouble(BoundingBox(85.05, 180.0, -85.05, -180.0)) setScrollableAreaLimitDouble(BoundingBox(85.05, 180.0, -85.05, -180.0))
addColorFilter() // apply filter
val tilesFilter = getColorFilter(Color.parseColor("#D50000"))
overlayManager.tilesOverlay.setColorFilter(tilesFilter)
// fill overlays // fill overlays
overlays.add(0, gspOverlay) overlays.add(0, gspOverlay)
@@ -328,63 +330,31 @@ class MapOsmFragment : Fragment(R.layout.fragment_map_osm) {
binding.mapView.overlays.add(overlay) binding.mapView.overlays.add(overlay)
} }
private fun addColorFilter() { private fun getColorFilter(targetColor: Int): ColorMatrixColorFilter {
val newR = Color.red(targetColor) / 255f
val newG = Color.green(targetColor) / 255f
val newB = Color.blue(targetColor) / 255f
val negativeArray = floatArrayOf( val negativeMatrix = ColorMatrix(
-1.0f, .0f, .0f, .0f, 255.0f, floatArrayOf(
.0f, -1.0f, .0f, .0f, 255.0f, -1f, 0f, 0f, 0f, 255f,
.0f, .0f, -1.0f, .0f, 255.0f, 0f, -1f, 0f, 0f, 255f,
.0f, .0f, .0f, 1.0f, .0f 0f, 0f, -1f, 0f, 255f,
0f, 0f, 0f, 1f, 0f
)
) )
val negativeMatrix = ColorMatrix(negativeArray)
val grayScaleArray = floatArrayOf( val tintedMatrix = ColorMatrix(
0.2126f, 0.7152f, 0.0722f, 0f, 0f, floatArrayOf(
0.2126f, 0.7152f, 0.0722f, 0f, 0f, newR, newG, newB, 0f, 0f,
0.2126f, 0.7152f, 0.0722f, 0f, 0f, newR, newG, newB, 0f, 0f,
0f, 0f, 0f, 1f, 0f newR, newG, newB, 0f, 0f,
0f, 0f, 0f, 0f, 255f
)
) )
val grayScaleMatrix = ColorMatrix(grayScaleArray)
val destinationColor = Color.parseColor("#FF2A2A2A") tintedMatrix.preConcat(negativeMatrix)
val lr = (255.0f - Color.red(destinationColor)) / 255.0f return ColorMatrixColorFilter(tintedMatrix)
val lg = (255.0f - Color.green(destinationColor)) / 255.0f
val lb = (255.0f - Color.blue(destinationColor)) / 255.0f
val tintedGrayScaleArray = floatArrayOf(
lr, lg, lb, 0f, 0f,
lr, lg, lb, 0f, 0f,
lr, lg, lb, 0f, 0f,
0f, 0f, 0f, 0f, 255f
)
val tintedGrayScaleMatrix = ColorMatrix(tintedGrayScaleArray)
tintedGrayScaleMatrix.preConcat(negativeMatrix)
val sepiaArray = floatArrayOf(
0.393f, 0.769f, 0.189f, .0f, .0f,
0.349f, 0.686f, 0.168f, .0f, .0f,
0.272f, 0.534f, 0.131f, .0f, .0f,
.0f, .0f, .0f, 1.0f, .0f
)
val sepiaMatrix = ColorMatrix(sepiaArray)
sepiaMatrix.preConcat(tintedGrayScaleMatrix)
val dr = Color.red(destinationColor)
val dg = Color.green(destinationColor)
val db = Color.blue(destinationColor)
val drf = dr / 255f
val dgf = dg / 255f
val dbf = db / 255f
val tintArray = floatArrayOf(
drf, 0f, 0f, 0f, 0f,
0f, dgf, 0f, 0f, 0f,
0f, 0f, dbf, 0f, 0f,
0f, 0f, 0f, 1f, 0f
)
val tintMatrix = ColorMatrix(tintArray)
tintMatrix.preConcat(tintedGrayScaleMatrix)
val filter = ColorMatrixColorFilter(sepiaMatrix)
binding.mapView.overlayManager.tilesOverlay.setColorFilter(filter)
} }
override fun onPause() { override fun onPause() {
+6
View File
@@ -29,4 +29,10 @@
<color name="satPrimary">#FFE082</color> <color name="satPrimary">#FFE082</color>
<color name="satSecondary">#80FFE082</color> <color name="satSecondary">#80FFE082</color>
<color name="satTertiary">#26FFE082</color> <color name="satTertiary">#26FFE082</color>
<!-- temp colors -->
<color name="shark">#202124</color>
<color name="shark_light">#2E2F32</color>
<color name="athens_gray">#e8e9ec</color>
<color name="shuttle_gray">#606367</color>
<color name="mako">#3d4043</color>
</resources> </resources>