Hi Yonson,
This may help, I am no expert but this is what I did to over come the problem.
1. Set the marker bit map the Alpha zero [IE Transparent]
2. Created an ImageView that sits on top of the marker
3. Sized the ImageView using Dip
This is the code where I used this method.
Antenna Bearing Tool
Please remember this is a case of the blind leading the blind so this could be a bad idea but it appears to work with some limitations. The markers seem to lack touch sensitivity but I am still looking at that.
On the issue of pixel density I too have been confused when it comes to Dips.
My current understanding is that by using Dips you effectively convert pixel count to a linear measurement.
Example: The default layout in the IDE is 320 by 480 pixels with a density of 160 pixel per inch. Layout therefore 2 inches by 3 inches. If a square label in this lay out is 40 pixels by 40 pixels it will be physically 0.25 of an inch square.
If the App is run on a device with a different pixel density the square will be a different physical size if the square is defined in pixels.
If the square is defined in Dips [40Dip * 40Dip] the square will be 0.25 inches square irrespective of the devices pixel density.
That is how I understand it until someone shoots me down.
Regards Roger