I'm convinced that the Samsung e317 (Cingular) has a bug in the Graphics.fillRect method.
I did a bunch more testing with Ofscreen bitmaps and found that fill rect will not draw outside screen size if the offscreen bitmap is larger than the screen. I found a page that describes a very similar problem with Graphics.drawLine
http://jroller.org/page/wangjammer5/20040617 on earlier Samsung phones. This talks about drawLine problems and the way to fix it with fillRect, but similar in behavior.
The offscreen image is larger than the screen size by 20 pixels (my tile size) so I only have to draw into the bitmap when the screen offset is larger than 20. Then I scroll smoothly and only update on the edges when the offset is > 20.
Samsung's developer website doesn't describe any problems what so ever with any phone and it has message boards that have questions that have gone unanswered for months. Quite stale. Welcome the J2ME hell. Bad implementations and bad developer support.
<Rant>
To describe the J2ME world as bad gives it way too much justice. A better description would be the absolute worst environment anyone could possibly work with. The next "worst" environment would be a million times better. Coming from someone who's been in the trenches for 5 years now. It has never improved and has only progressively gotten worse. If you plan to enter this market, take this into acount as a huge huge risk. Every phone you plan to support will require a special version of your program and hours and hours of time to test and write phone specific work arounds with no debug capability on the device, not even System.out. Not only do we get the performance hit of a JVM, but we have the same problems as C anyways. Very disappointing.
</Rant>
This is not one of my required phones (yet), just the phone I carry so I'm not sure if I'm going to fix it or not. The work around I'm thinking about is to have three offscreen images, one as large as the screen and two 20 pixel wide strips, one horizontal and one vertical at the bottom and right. I'll typically have to draw all three to update the screen and do some odd behavior to update them all when the scroll factor reachs 20.
The other workaround is funny. Since the other phones have drawLine problems and the work around is to use fillRect with a width of 1, I was thinking I could maybe use drawLine in a loop to fill in the rect. Hmmm, probably a performance pig but it would be a lot easier to implement than the three separate offscreen bitmaps. Assuming drawLine didn't have the same problem.
Hope that helps some one out there.
Wood