You say your code is in C #. As far as I know, Xamarin is the only way to get C # code to work on Android and iOS. Xamarin has a free starter edition that you could use, but your application will be limited in size. As soon as you click the size limit, you will need to pay for the license.
Once you decide to pay for the license, no other costs are required if you want to use MonoGame for the port. If your game already uses XNA or you have XNA experience, I recommend using MonoGame. MonoGame is an XNA port and is designed to create games, so many game-related tasks are simpler.
An alternative is to create your game as an application using the standard API for building applications. It is possible, but I do not see any advantages in this, if you are not trying to save money using the free version of Xamarin. If you plan on making more games in the future, you'd better bite the bullet and learn MonoGame.
Using bitmaps with MonoGame should not be a problem. Although you may need to convert them to PNG first.
Centralizing business logic in one assembly is something like using Portable Class Libraries, but due to PCL limitations it is often easier to use file sharing. Basically you have a soft link to the files in each project. Updating files simultaneously updates them in all projects, but when adding new files you must add them to each project separately. This is a bit of a pain in maintenance, but not much.
source share