饒榮慶 -- 您今天UCWEB了嗎?--http://www.ucweb.com

          3G 手機(jī)開(kāi)發(fā)網(wǎng)

             :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks

          公告


          人要吃很多苦才可以長(zhǎng)大!

          踏實(shí)平凡人應(yīng)該遵守的原則!

          與我TM

          gooogledev@gmail.com

          友情鏈接

          我的j2me創(chuàng)意

          Wap瀏覽器的源代碼

          用自己寫(xiě)的rms引擎寫(xiě)的電話本

          RSS訂閱此博客  
          用抓蝦訂閱此博客
          用google訂閱此博客
          用bloglines訂閱此博客
              網(wǎng)絡(luò)封神榜 | 饒榮慶

          常用鏈接

          留言簿(8)

          我參與的團(tuán)隊(duì)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 164745
          • 排名 - 360

          最新評(píng)論

          閱讀排行榜

          原文地址 http://javaeye.5d6d.com/thread-171-1-1.html

          j2me實(shí)現(xiàn)圖片透明效果

          透明效果的設(shè)計(jì),是開(kāi)發(fā)游戲以及UI的常談話題,小弟整理了下關(guān)于透明效果的嗲們,有興趣的朋友可以看看

          代碼
          /**
          *
          * @author Jagie
          *
          */
          public class ShadowMIDlet extends MIDlet {
          Canvas c = new ShadowCanvas();
          public ShadowMIDlet() {
          }
          protected void startApp() throws MIDletStateChangeException {
          Display.getDisplay(this).setCurrent(c);
          }
          protected void pauseApp() {
          // TODO Auto-generated method stub
          }
          protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
          // TODO Auto-generated method stub
          }
          }
          /**
          *
          * @author Jagie
          *
          */
          class ShadowCanvas extends Canvas implements Runnable {
          int w, h;
          // 原始圖片
          Image srcImage;
          // 原始圖片的像素?cái)?shù)組
          int[] srcRgbImage;
          // 漸變圖片的像素?cái)?shù)組
          int[] shadowRgbImage;
          int imgWidth, imgHeight;
          int count;
          public ShadowCanvas() {
          w = this.getWidth();
          h = this.getHeight();
          try {
          srcImage = Image.createImage("/av.png");
          } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }
          imgWidth = srcImage.getWidth();
          imgHeight = srcImage.getHeight();
          // 制造原始圖片的像素?cái)?shù)組,用一個(gè)int來(lái)代表每一個(gè)像素,按位表示方式是:0xAARRGGBB
          srcRgbImage = new int[imgWidth * imgHeight];
          // 獲取原始圖片的所有像素,參見(jiàn)MIDP APPI文檔
          srcImage.getRGB(srcRgbImage, 0, imgWidth, 0, 0, imgWidth, imgHeight);
          shadowRgbImage = new int[srcRgbImage.length];
          System.arraycopy(srcRgbImage, 0, shadowRgbImage, 0,
          shadowRgbImage.length);
          // 漸變圖片的所有像素已開(kāi)始都是全透明的
          for (int i = 0; i < shadowRgbImage.length; i++) {
          shadowRgbImage &= 0x00ffffff;
          }
          new Thread(this).start();
          }
          public void paint(Graphics g) {
          g.setColor(0, 0, 0);
          g.fillRect(0, 0, w, h);
          // 繪制漸變圖片
          g.drawRGB(shadowRgbImage, 0, imgWidth, (w - imgWidth) / 2,
          (h - imgHeight) / 2, imgWidth, imgHeight, true);
          g.setColor(0, 255, 0);
          g.drawString("count=" + count, w / 2, 30, Graphics.HCENTER
          | Graphics.TOP);
          }
          public void run() {
          while (true) {
          boolean changed = false;
          // 改變漸變圖片的每一個(gè)像素
          for (int i = 0; i < shadowRgbImage.length; i++) {
          // 獲取漸變圖片的某一像素的alpha值
          int alpha = (shadowRgbImage & 0xff000000) >>> 24;
          // 原始圖片的對(duì)應(yīng)像素的alpha值
          int oldAlpha = (srcRgbImage & 0xff000000) >>> 24;
          if (alpha < oldAlpha) {
          // alpha值++
          shadowRgbImage = ((alpha + 1) << 24) | (shadowRgbImage & 0x00ffffff);
          changed = true;
          }
          }
          try {
          Thread.sleep(10);
          } catch (InterruptedException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }
          count++;
          repaint();
          // 當(dāng)所有像素的alpha值都達(dá)到原始值后,線程運(yùn)行結(jié)束
          if (!changed) {
          System.out.println("over");
          break;
          }
          }
          }
          }












          爬蟲(chóng)工作室 -- 專(zhuān)業(yè)的手機(jī)軟件開(kāi)發(fā)工作室
          3G視線 -- 專(zhuān)注手機(jī)軟件開(kāi)發(fā)
          posted on 2007-08-24 16:41 3G工作室 閱讀(868) 評(píng)論(2)  編輯  收藏

          Feedback

          # re: j2me實(shí)現(xiàn)圖片透明效果 2007-10-24 23:23 sunday
          頂一下,十分感謝。  回復(fù)  更多評(píng)論
            

          # re: j2me實(shí)現(xiàn)圖片透明效果 2012-09-15 16:37
          能不能不抄襲啊 為什么網(wǎng)上全都是一樣的 就不能有一點(diǎn)創(chuàng)新嗎 你哪怕改個(gè)字也行啊 你是ctrl c 和 ctrl v 過(guò)來(lái)的吧  回復(fù)  更多評(píng)論
            


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 彩票| 孙吴县| 界首市| 阳山县| 漾濞| 六枝特区| 仁布县| 犍为县| 桐乡市| 山西省| 枞阳县| 板桥市| 青田县| 手游| 河津市| 威远县| 平武县| 罗城| 长武县| 彭山县| 光泽县| 定远县| 静海县| 安福县| 青岛市| 晋城| 香格里拉县| 乌拉特后旗| 泾源县| 宣恩县| 哈密市| 漳浦县| 镇宁| 新郑市| 兴城市| 敖汉旗| 柘荣县| 祁连县| 珲春市| 温州市| 舞阳县|