【Descrição do problema】
Muitas vezes vemos alguns exemplos de rolagem, como o conteúdo da página da web no navegador UC. Quando há muito conteúdo, é razoável usar a paginação de rolagem para ser exibida. No desenho da tela, o excesso de conteúdo é truncado. Como realizar a exibição de paginação de rolagem?
【princípio】
Existe uma função de transformação de coordenadas no Javame. Quando o evento de chave correspondente é acionado, deixamos ele exibir a página correspondente e rolar a barra de rolagem para a posição correspondente.
【Lista de códigos】
ShowHelp.javapacke com.Token.View; Token.util.uicontrolle Cabeça; true); 0; , "" Return "); Pontuação de pontos Exibir; /n " +" Página de rolagem Exibição; Página de rolagem de rolagem; Página de rolagem de rolagem; Scroll Paging Display; Scroll Paging Display; Scroll Paging Display; Scroll Paging Display; Length*ft.gethe Iight ()/(altura-cabeça.MenuHeight-Menu.MenuHeight-2*margem) +1; *ft.gethEight (); .MenuHeight+margem, largura, peso corporal); , i*ft.gethEight () +head.menuHeight +margem, grafics.top | graphics.left); System.Println (Graphics.getTranslatey ()); Head.MenuHeight, 2, BarHeight); KeyCode) {//system.out .EventId.Event_Main_Scree, args); Índice> 0) {CurrentPageIndEx-; /dir = 0;
* Consulte a serialização do Javame (3) para o UICOntroller - fale também sobre o padrão de design do MVC, para não repetir aqui.
【analisar】
1 String Split
String info_wrap1 [] = stringDealMethod.format (info, largura-15, ft);
Para detalhes, consulte a serialização Javame (4) - Desenho de texto automático de embrulho de linha
2 Evite truncamento de palavras
Como desenhar toda uma linha de texto em uma área especificada sem truncar o texto devido a alterações na altura da fonte ou na tela, fazendo com que o texto tenha "palavras semi-truncadas"?
BodyHeight = ((int) (altura-cabeça.MenuHeight-Menu.MenuHeight) /ft.getHeight ())*ft.getHeight ();
Após o processamento acima, o peso do corpo da altura da área de rolagem sempre será um múltiplo inteiro da altura da fonte, para que o problema de truncamento de palavras acima mencionado não ocorra.
3 Desenhe texto
para (int i = 0; i <info_wrap1.length; i ++) {graphics.drawString (info_wrap1 [i], 5, i * ft.getHeight ()+head.menuHeight+margem, graphics.to p | graphics.left) ;
4 Coordenar a transformação
Graphics.ClipRect (0, Head.MenuHeight+margem, largura, peso corporal);
Depois que o texto for desenhado, transforme as coordenadas de volta.
Graphics.Translate (0, -dir*currentPageIndex*BodyHeight);
5 Desenham barras de rolagem
Void privado drawScrollBar () {int barheight = altura-cabeça.MenuHeight-Menu.MenuHeight; Color .selectbg);
6 Manuseio de eventos
Quando um evento de imprensa de teclas é detectado, uma operação de giro de página é executada.
Protectado KeyPressed (Int KeyCode) {//system.out.println(KeyCode); .HandleEvent (UICONTROLLER.EVENTID.EVENT_MAIN_SELHO, args); 1; } else {// dir = 0;
Este método de exemplo pode detectar adaptativamente a largura e o comprimento da tela e paginar o texto de acordo com o tamanho da fonte e exibir rolos.
Efeito de exibição de rolagem de imagem