【Descripción del problema】
A menudo vemos algunos ejemplos de desplazamiento, como el contenido de la página web en el navegador UC. Cuando hay mucho contenido, es razonable usar la paginación de desplazamiento para mostrar. En el dibujo en el lienzo, el exceso de contenido se trunca. ¿Cómo realizar la pantalla de paginación de desplazamiento?
【principio】
Hay una función de transformación de coordenadas en Javame. Cuando se activa el evento clave correspondiente, dejamos que muestre la página correspondiente y desplácese la barra de desplazamiento a la posición correspondiente.
【Lista de código】
Showhelp.javapackage com.token.view; . token.util.uicontroller; Cabeza de cabeza privada; verdadero); 0; , "," Return "); pantalla de la página de puntos; /n " +" 3 Pantalla de desplazamiento; pantalla de desplazamiento; pantalla de desplazamiento de la página de desplazamiento; PROBACIÓN DE LA PAGO DE PAGO DEL PARTE Pantalla de paginación " +" 23 Pantalla de paginación de desplazamiento; Pantalla de paginación; Pantalla de paginación; longitud*ft.gethe ight ()/(altura-cabeza.menuheight-menu.menuheight-2*margen) +1; ) *ft.gethEight (); .menuHeight+margen, ancho, bodyHeight); , i*ft.gethEight () +head.MenuHeight +margen, gráfico.top | gráfico.left); System.out.println (Graphics.getTranslatey ()); Head.MenuHeight, 2, Barheight); KeyCode) {//system.out. .Eventid.event_main_screen, args); Índice> 0) {CurrentPageIndex--; /dir = 0;
* Consulte la serialización de Javame (3) para UIController, también hable sobre el patrón de diseño MVC, para que no lo repitiré aquí.
【analizar】
1 cadena dividida
String info_wrap1 [] = stringDealmethod.format (info, width-15, ft);
Para más detalles, consulte la serialización de Javame (4) - Dibujo de texto de envoltura de línea automática
2 Evite el truncamiento de palabras
¿Cómo dibujar una línea completa de texto en un área especificada sin truncar el texto debido a los cambios en la fuente o la altura de la pantalla, lo que hace que el texto tenga "palabras medio truncadas"?
BodyHeight = ((int) (Head-Head.Menuheight-Menu.Menuheight) /ft.getheight ())*ft.getheight ();
Después del procesamiento anterior, el cuerpo de altura del área de desplazamiento siempre será un múltiplo entero de la altura de la fuente, de modo que el problema de truncamiento de palabras mencionado anteriormente no ocurrirá.
3 TEXTO DE DIBUJO
para (int i = 0; i <info_wrap1.length; i ++) {gráfico.drawstring (info_wrap1 [i], 5, i * ft.getheight ()+head.menuheight+margen, gráfico.to p | gráfico.left) ;
4 Transformación de coordenadas
Graphics.Cliprect (0, Head.MenuHeight+Margen, Ancho, BodyHeight);
Después de dibujar el texto, transforme las coordenadas hacia atrás.
Graphics.translate (0, -dir*CurrentPageIndex*BodyHeight);
5 Dibujar barras de desplazamiento
Void void DrawScrollBar () {int Barheight = Height-Head.MenuHeight-Menu.MenuHeight; Color .selectbg);
6 Manejo de eventos
Cuando se detecta un evento de presione de tecla, se realiza una operación de turno de página.
protegido KeyPressed (int KeyCode) {//system.out.println(Keycode); .HandleEvent (UICONTROLLER.EVENTID.EVENT_MAIN_SCREEN, Args); 1; } else {// dir = 0;
Este método de ejemplo puede detectar adaptativamente el ancho y la longitud de la pantalla, y paginar el texto de acuerdo con el tamaño de la fuente y mostrarlo se desplaza.
Efecto de pantalla de desplazamiento de imágenes