To present an OpenStreetMap in your Xamarin.Android app the same steps are required as for Xamarin.iOS. Therefor create a new Xamarin.Android app and add the references.
Before a map can be presented we need to get a tile-provider. OpenStreetMap provides a small list of tile-servers at their website. Also worth a view http://wiki.openstreetmap.org/wiki/Tileserver.
With the tile-server a map will be initialized within a few lines of code in OnCreate. One thing worth to mention is, that you have to set the MapTilt property. Otherwise you will see a NullReferenceException.
The image on the left is the map with the default OpenStreetMap-style. Just like on iOS, by using another tile-server as the source of our map, we got a more appealing style for the map on the right side.
As I wrote in the iOS article too, one of the main reasons I played around with OSMSharp and OpenStreetMap are the capability to use maps even in offline-scenarios. To be comparable I focus on MBTiles as data source.
In this article I am going to add my mbtiles-file as an asset to the Android project. That way it is already included and don't need to be downloaded somewhere. In the app we need to get a stream to the file and tell the MBTile-layer the name of the database.
You can find the demo project and all files on bitbucket. If liked the article or have any questions write a comment.