In my attempts to get this example working, I ran into a couple of problems. I think it is trying to draw something like the following for each row but isn't working quite right.
1) It appears that the first line should be changed from drawLine(0,0,gMH,0) to drawLine(0,0,0,gMH)
2) The underline part isn't showing for me at all (WinXP) because it is slightly outside of the canvas(?).
My call to getMeasuredHeight() returns 38. If I replace the call to gMH with a fixed value of 37, the line shows.
Is this related to the AntiAlias setting that is used in the Paint() object? I tried a default one, but no change.