真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaMe如何實現(xiàn)自適應(yīng)滾動顯示

本文小編為大家詳細介紹“JavaMe如何實現(xiàn)自適應(yīng)滾動顯示”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“JavaMe如何實現(xiàn)自適應(yīng)滾動顯示”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

創(chuàng)新互聯(lián)長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為昆都侖企業(yè)提供專業(yè)的網(wǎng)站制作、網(wǎng)站設(shè)計,昆都侖網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

【原理】

JavaMe中有一個坐標(biāo)變換的功能。當(dāng)觸發(fā)相應(yīng)的按鍵事件時,我們就讓其顯示相應(yīng)的頁,并且使?jié)L動條滾動到相應(yīng)的位置。

【代碼清單】

ShowHelp.java

package com.token.view;   import javax.microedition.lcdui.Font;  import javax.microedition.lcdui.Graphics;  import javax.microedition.lcdui.game.GameCanvas;   import com.token.util.StringDealMethod;  import com.token.util.UIController;  import com.token.view.components.*;   public class ShowHelp  extends GameCanvas  {      private UIController controller;      private Graphics graphics;      private Font ft;      private int width;      private int height;            private Menu menu;      private Head head;      private BackGroud backGroud;            private int page = 0;      private int currentPageIndex = 0;      private int bodyHeight;      private int dir = 0;             public ShowHelp(UIController control)       {          super(false);          this.controller=control;          setFullScreenMode(true);                    width = getWidth();          height = getHeight();                    menu = new Menu(this);          head = new Head(this);          backGroud = new BackGroud(this);       }            public void show()      {          int margin = 0;          graphics = getGraphics();                    graphics.clipRect(0,0, width, height);          backGroud.drawBackGroud(this, graphics);            head.drawHead(this, graphics, "幫助");          menu.drawMenu(this, graphics, "","返回");          //flushGraphics();                    ft = Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD,Font.SIZE_MEDIUM);                    String info = "1 滾動分頁顯示;\n"                 +"2 滾動分頁顯示;\n"                 +"3 滾動分頁顯示;\n"                 +"4 滾動分頁顯示;\n"                 +"5 滾動分頁顯示;\n"                 +"6 滾動分頁顯示;\n"                 +"7 滾動分頁顯示;\n"                 +"8 滾動分頁顯示;\n"                 +"9 滾動分頁顯示;\n"                 +"10 滾動分頁顯示;\n"                 +"11 滾動分頁顯示;\n"                 +"12 滾動分頁顯示;\n"                 +"13 滾動分頁顯示;\n"                 +"14 滾動分頁顯示;\n"                 +"15 滾動分頁顯示;\n"                 +"16 滾動分頁顯示;\n"                 +"17 滾動分頁顯示;\n"                 +"18 滾動分頁顯示;\n"                 +"19 滾動分頁顯示;\n"                 +"20 滾動分頁顯示;\n"                 +"21 滾動分頁顯示;\n"                 +"22 滾動分頁顯示;\n"                 +"23 滾動分頁顯示;\n"                 +"24 滾動分頁顯示;\n"                 +"25 滾動分頁顯示;\n"                 +"26 滾動分頁顯示;\n"                 +"27 滾動分頁顯示;\n"                 +"28 滾動分頁顯示;\n"                 +"29 滾動分頁顯示;\n"                 +"30 滾動分頁顯示;\n"                 +"31 滾動分頁顯示;\n"                 +"32 滾動分頁顯示;\n"                 +"33 滾動分頁顯示;\n"                 +"34 滾動分頁顯示;\n";                            String info_wrap1[] = StringDealMethod.format(info, width-15, ft);           page = info_wrap1.length*ft.getHeight()/(height-head.menuHeight-menu.menuHeight-2*margin)+1;          bodyHeight = ((int) (height-head.menuHeight-menu.menuHeight)/ft.getHeight())*ft.getHeight();          margin = (height-head.menuHeight-menu.menuHeight-bodyHeight)/2;                    graphics.setFont(ft);          graphics.setColor(Color.text);          graphics.clipRect(0, head.menuHeight+margin, width, bodyHeight);          graphics.translate(0, dir*currentPageIndex*bodyHeight);                    for(int i=0; i0)                  {                      currentPageIndex--;                  }                  else                   {                      //dir = 0;                  }                                    show();                  break;                                }              case DOWN:              {                  dir = -1;                  if(currentPageIndex

【分析】

1 字符串拆分

String info_wrap1[] = StringDealMethod.format(info, width-15, ft);

2 避免字截斷

如何在指定的區(qū)域內(nèi)繪制整行文本,而不會因為字體或屏幕高度的改變使文本出現(xiàn)截斷的問題,使文本出現(xiàn)“半截字”的問題呢?

bodyHeight = ((int) (height-head.menuHeight-menu.menuHeight)/ft.getHeight())*ft.getHeight();

經(jīng)過上述處理后,滾動區(qū)域的高度bodyHeight總會是字體高度的整數(shù)倍,這樣就不會出現(xiàn)上述字截斷的問題了。

3 繪制文本

for(int i=0; i

4 坐標(biāo)變換

graphics.clipRect(0, head.menuHeight+margin, width, bodyHeight);  graphics.translate(0, dir*currentPageIndex*bodyHeight);

文本繪制完成后,將坐標(biāo)變換回來。

graphics.translate(0, -dir*currentPageIndex*bodyHeight);

5 繪制滾動條

private void drawScrollBar()  {      int barHeight = height-head.menuHeight-menu.menuHeight;            graphics.setColor(Color.menuFrame);      graphics.fillRect(width-3, head.menuHeight, 2, barHeight);      graphics.setColor(Color.selectBg);      graphics.fillRect(width-4, head.menuHeight+(currentPageIndex)*barHeight/page, 4, barHeight/page);  }

6 事件處理

當(dāng)檢測到按鍵事件后,進行翻頁操作。

protected void keyPressed(int keyCode)  {      //System.out.println(keycode);      switch(keyCode)      {          case KeyID.SOFT_RIGHT:          {              String flag = "0";              Object [] args = {flag,""};              controller.handleEvent(UIController.EventID.EVENT_MAIN_SCREEN,args);              break;          }          default:              ;      }                keyCode = getGameAction(keyCode);      //System.out.println(page);                switch(keyCode)      {                    case UP:          {              dir = -1;                                                      if(currentPageIndex>0)              {                  currentPageIndex--;              }              else               {                  //dir = 0;              }                            show();              break;                        }          case DOWN:          {              dir = -1;              if(currentPageIndex

讀到這里,這篇“JavaMe如何實現(xiàn)自適應(yīng)滾動顯示”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


標(biāo)題名稱:JavaMe如何實現(xiàn)自適應(yīng)滾動顯示
分享路徑:http://weahome.cn/article/jdpdsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部