【Problembeschreibung】
Wir sehen oft einige Scrolling -Beispiele, wie den Inhalt der Webseite im UC -Browser. Wenn es viele Inhalte gibt, ist es vernünftig, die Bildlaufpagination anzuzeigen. In der Zeichnung in Leinwand wird der überschüssige Inhalt abgeschnitten. Wie kann man das Scrolling -Pagination -Display realisieren?
【Prinzip】
Es gibt eine Koordinaten -Transformationsfunktion in Javame. Wenn das entsprechende Schlüsselereignis ausgelöst wird, können wir die entsprechende Seite anzeigen und die Bildlaufleiste in die entsprechende Position scrollen.
【Codeliste】
ShowHelp.JavapAtage Com.token.View; token.util.uicontroller; Hauptkopf; True); 0; "", "Return") // Flushgraphics (); Punkte Anzeige; /N " +" 3 Bildlaufseite; Scroll -Seite " /n" +"8 Scroll -Seite" Scroll -Anzeige; Scroll Paging Display; Scroll Paging Display; Scroll Paging Display; Scroll Paging Display; Länge*ft.gethe iight ()/(Height-Head.MenuHeight-Menu.MenuHeight-2*Margin) +1; ) *ft.Getheight () margin = (Height-Head.MenuHeight-Menu.MenuHeight-BodyHeigh)/2; .MenuHeight+Margin, Width, BodyHeight); i*ft.getheight () +head.MenuHeight +Margin, Graphics.top | Graphics.Left); System.out.println (Graphics.Gettranslatey ()); Head.MenuHeight, 2, Barheeight); KeyCode) {//System.out .EventId.Event_Main_Screen, Argumente); Index> 0) {CurrentPageIndex--; /Dir = 0;
* Bitte beachten Sie die Serialisierung von Javame (3) für UICONTROLLER - Sprechen Sie auch über das MVC -Designmuster, damit ich es hier nicht wiederholen werde.
【analysieren】
1 String Split
String info_wrap1 [] = stringdealMethod.format (info, width-15, ft);
Weitere Informationen finden Sie in der Serialisierung von Javame (4) - Automatische Zeilenverpackungstext zeichnen
2 Wortkürzung vermeiden
Wie zeichne ich eine ganze Textzeile in einem bestimmten Bereich, ohne den Text aufgrund von Änderungen in der Schrift oder in der Bildschirmhöhe abzuschneiden, wodurch der Text "halbkundige Wörter" enthält?
BodyHeight = ((int) (Höhe-Head.MenuHeight-Menu.MenuHeight) /ft.Getheight ())*ft.getheight ();
Nach der obigen Verarbeitung ist die Höhe des Körperhochs des Bildlaufbereichs immer ein ganzzahliges Vielfaches der Schrifthöhe, so dass das oben genannte Wortkürzungsproblem nicht auftritt.
3 Text zeichnen
für (int i = 0; i <info_wrap1.length; i ++) {graphics.drawstring (info_wrap1 [i], 5, i * ft.getheight ()+head.menuHeight+margin, graphics.to p | graphics.left) ;
4 Koordinate Transformation
Grafik
Nachdem der Text gezogen wurde, transformieren Sie die Koordinaten zurück.
Graphics.Translate (0, -dir*currentPageIndex*BodyHeight);
5 Bildlaufleisten zeichnen
private void DrawScrollBar () {int barheht = Height-Head.MenuHeight-Menu.MenuHeight; Farbe. Selectbg);
6 Event -Handling
Wenn ein Tastendruckereignis erkannt wird, wird ein Seitenbetriebsvorgang durchgeführt.
Protected void kectioned (int keyCode) {//system.out.println(KeyCode); .HandleEvent (uIcontroller.Eventid.Event_Main_screen, args); 1; } else {// Dir = 0;
Diese Beispielmethode kann die Breite und Länge des Bildschirms anpassungsfähig erkennen und den Text nach der Größe der Schriftart pagieren und ihn auf Scrollen anzeigen.
Bild -Scrolling -Display -Effekt