Da gibt es verschiedene Möglichkeiten das Problem zu lösen. Bei einfachen Spielen solltest du einfach versuchen, dein Spiel so zu gestalten, dass es sich auf jede Auflösung anpassen lässt. Ohne Skalierung und ähnliches.
Ein einfaches Brettspiel ließe sich beispielsweise so realisieren, dass du einen kachelfähigen Hintergrund zeichnest und das Spielbrett in der Mitte des Bildschirm platzierst.
Eine andere Möglichkeit besteht darin, einfach eine geringe Auflösung zu wählen. Mit
javax.microedition.lcdui.Graphics.setClip setzt du dazu einfach den Clipping Bereich auf die entsprechende Auflösung. Alle Operationen außerhalb werden abgeschnitten.
Das Spiel hat dann natürlich einen Rand, dieser ließe sich aber mit etwas Geschick schön schmücken
.
Und wenn du es richtig gut machen möchtest, dann bietest du zusätzlich, z.B. auf Tastendruck, die Skalierung auf die komplette Bildschirmauflösung des jeweiligen Gerätes an. Das kostet natürlich einiges an Performance. Bei meinem Handy ( Motorola MOTORAZR² V8 ) hatte ich aber keine Probleme.
Indem Fall solltest du aber nicht
javax.microedition.lcdui.game.GameCanvas verwendet, sondern dein eigenes System auf
javax.microedition.lcdui.Canvas aufsetzen. Da du mehr Kontrolle über den Offscreen-Buffer brauchst. (Und sollte das Gerät nativ DoubleBuffering unterstützen, siehe
javax.microedition.lcdui.Canvas.isDoubleBuffered(), dann kannst du dir meines Wissens den Buffer sparen, sofern du nicht auf die volle Bildschirmauflösung skalieren willst).
Ich empfehle dir aber, sofern Möglich, deine Spiele so zu gestalten, dass sie sich jeder Auflösung anpassen können. Das spart Zeit und Nerven. (Besonders beim skalieren kann der Text manchmal sehr unschön wirken).
Mit freundlichen Grüßen
Kasenoru