A part of an app I'm making in Kotlin in Android Studio contains a map with provinces. (See image) Replication of map of the Netherlands All of the provinces are different ImageViews, because I need to be able to change their color individually.
The issue comes with smaller or thinner screens where some ImageViews go off-screen or are not aligned anymore. To prevent this, I would like to make the entirety of the map scalable based on the size of the screen. It's okay for the ImageViews to become quite a bit smaller to still be usable, but I have not been able to figure it out. There are also a button on top of a part of each ImageView, as you can see in the mess on the right of the image.
I have tried using the custom scalable dp (sdp) but, even though I was able to make the size of the ImageViews, I could not get it to be reliable enough, but most importantly, I could not get them to keep their position relative to each other. This is a very important part as otherwise the map would no longer be intact.