This is a very interesting topic...atleast for me
I wish there was some kind of collision detection library but ofcourse thats asking too much!
As Erel said, you can use the GetPixel value of a canvas, but that will not work if you have multiple objects of the same color. you can create 'layers' of moving objects but if you have too many objects then that will be too slow.
If you have an arbitary shaped object (lets say coming from a bitmap) it gets quite hard but if you can break it down into a geomtrical shape using the Path object, then you should be able to write a routine to do collision detection using AABB (axis-aligned bounding box collision).
Lets say if the ground surface is a circle with known radius and centre, and your lunar lander has a flat bottom, then checking each bottom edge pixel's (or you can approximate) distance from the edge of the circle. (its getting hard to explain without a diagram).
For the y bounds we check:
box.bottomedge > circle.y - r*sin((box.leftedge-circle.x)/r)
which comes from
box.bottomedge > circle.y - r sin(theta)
there is not much to check on x bounds i think since the angle takes care of that.
maybe i am complicating it too much though