騎豬闖天下

          J2ME隨筆,記錄成長(zhǎng)的腳步

          統(tǒng)計(jì)

          留言簿(3)

          閱讀排行榜

          評(píng)論排行榜

          [J2ME-原創(chuàng)] 跑馬燈功能

          也沒什么大懸念,就是一個(gè)坐標(biāo)計(jì)算的問題

          部分代碼如下:

              
          /**
               * 繪制文字跑馬燈效果
               * 
          @param g
               
          */

              
          public void paint(Graphics g)
              
          {
                  
          if (i_marqueeStr != null && engine.state != Engine.STATE_CONFIRM)// 有內(nèi)容
                  {
                      g.setClip(
          this.MARQUEE_X, this.MARQUEE_Y, SCREEN_WIDTH, 20);
                      g.setColor(
          25500);
                      g.setFont(Font.getFont(Font.FACE_MONOSPACE,
                              Font.STYLE_PLAIN, Font.SIZE_SMALL));
                      
          this.drawMarqueeStr(g, i_marqueeStr, this.MARQUEE_X,
                              
          this.MARQUEE_Y, SCREEN_WIDTH);

                  }

              }

              
              
          /**
               * 
          @param g
               * Graphics - graphics
               * 
          @param str
               * String - 要繪制的文字
               * 
          @param x
               * int - 文字的起始坐標(biāo)X
               * 
          @param y
               * int - 文字的起始坐標(biāo)Y
               * 
          @param endX
               * int - 跑馬燈區(qū)間的右邊框X坐標(biāo)
               * 
               * 
          @return void
               * 
          */

              
          private String i_marqueeStr = null;//跑馬燈的內(nèi)容
              private int marqueeStep = 0;
              
          private void drawMarqueeStr(Graphics g, String str, int x, int y, int endX)
              
          {
                  
          if(str.length() > 60)
                      str 
          = str.substring(0,60+ "";
                  
                  g.setFont(Engine.m_fDefaultFont);
                  
          int marqueeMoveWidth = 10;
                  
          if(str != null
                  
          {
                      g.setClip(x, y, endX, g.getFont().getHeight() 
          + 3);
                      g.setColor(
          0xFDFE01);
                      g.fillRect(x, y, endX, g.getFont().getHeight() 
          + 3);
                      g.setColor(
          0x2E00F4);
                      
          int strWidth = Util.getStringWidth(g.getFont(), str);//得到字長(zhǎng)    
                      if(strWidth + x > endX)//如果字長(zhǎng)大于區(qū)間寬-滾動(dòng)繪字
                      {
                          
          int px = endX - marqueeMoveWidth * (marqueeStep++);
                          g.drawString(str, px, y 
          + 20);
                          
          if(px + strWidth < x)
                              marqueeStep 
          = 0;
                      }

                      
          else//直接繪字
                          g.drawString( str, x, y + 20);
                  }

              }

          posted on 2010-03-05 13:24 騎豬闖天下 閱讀(363) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 鹤庆县| 陆丰市| 曲阜市| 定边县| 高尔夫| 滦平县| 上饶市| 延安市| 天津市| 石台县| 江山市| 偃师市| 咸丰县| 江门市| 东阿县| 密山市| 龙胜| 靖边县| 诸城市| 苏尼特右旗| 沭阳县| 永清县| 乐亭县| 涿州市| 镇康县| 黄浦区| 岳池县| 齐齐哈尔市| 大埔区| 江西省| 秦皇岛市| 宁乡县| 南宁市| 洪雅县| 宜川县| 阿瓦提县| 即墨市| 项城市| 合江县| 郸城县| 贵溪市|