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

          3G 手機開發(fā)網(wǎng)

             :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks
          3G視線 -- 專注手機軟件開發(fā)

          原文出處http://www.3geye.net/?uid-3-action-viewspace-itemid-111


          對于自定義UI的設(shè)計,涉及到的工作量是很大的,有時候往往要實現(xiàn)一種UI效果而花費大量的時間去思考,找路子,然后實踐,運氣好的話,自然OK,運氣不好,那就很慘了。浪費時間,還沒有效果。
                 不過還好有很多前輩總結(jié)出了一些方法跟代碼,下面就讓我們來看下,顏色漸變效果的實現(xiàn)吧。實踐了這么,感覺就這個代碼比較好,顏色漸變的比較平滑。很舒服。
                  下面是效果圖



          下面是實現(xiàn)代碼,大家可以參考下,也許還有更優(yōu)化的設(shè)計呢。

          下面代碼也是從Intenet來的,只是修改了下。

          /**
               * 繪制漸變色選擇條
               * @param g
               * @param color
               * @param x
               * @param y
               * @param width
               * @param height
               */
              public final static void drawShadeRect(Graphics g,   int color, int x , int y, int width, int height){
                   int[] rgb = getShadeColor(color, width);
                   for (int by = y; by < y + 20; by += 4)
                        {
                          int nTemp = y + 20 - (by - y);
                          nTemp = nTemp>4 ? 4:nTemp;
                            g.drawRGB(rgb, 0, width, x, by, width,
                                nTemp, true);
                        }
              }
              /**
               * 獲取顏色漸變RGB數(shù)組,
               * 為了獲取這個數(shù)據(jù),而又跟CLDC1.0兼容,導(dǎo)致項目增加了一個Float類
               * 導(dǎo)致程序變大
               * @param width
               * @return
               */
              public final static int[] getShadeColor(int color , int width){
                   int[] rgb;
               
                    int shadeWidth = width;
                    int nRgbData = shadeWidth * 4;
                     
                    rgb = new int[nRgbData];
                 
                    int alpha = -127;
                    for (int i = 0; i < shadeWidth; i++)
                    {
                      alpha = -127 + i;
                      //主要算法在這里。
                      int col = color | (128 - alpha << 24);
                      rgb[i]                  = col;
                      rgb[i + shadeWidth    ] = col;
                      rgb[i + shadeWidth * 2] = col;
                      rgb[i + shadeWidth * 3] = col;               
                    }
                    return rgb;
              }



          就兩個靜態(tài)方法很簡單的。哈



          爬蟲工作室 -- 專業(yè)的手機軟件開發(fā)工作室
          3G視線 -- 專注手機軟件開發(fā)
          posted on 2007-09-13 11:15 3G工作室 閱讀(1836) 評論(3)  編輯  收藏 所屬分類: j2me

          Feedback

          # re: 顏色漸變選擇條的實現(xiàn) 2007-09-13 11:34 千里冰封
          哈哈,不錯.在J2ME里面是挺難得的  回復(fù)  更多評論
            

          # re: 顏色漸變選擇條的實現(xiàn) 2007-09-13 20:15 BeanSoft
          是呀, 很不錯的了. 也可以套用到 Java 里面, 雖然有很多現(xiàn)成的畫漸變的方法. 不過這種比較直接, 呵呵.  回復(fù)  更多評論
            

          # re: 顏色漸變選擇條的實現(xiàn) 2007-09-14 09:23 爬蟲工作室
          http://www.3geye.net更多精彩的實現(xiàn),希望愛好J2me的朋友支持下  回復(fù)  更多評論
            

          主站蜘蛛池模板: 新邵县| 筠连县| 乌拉特后旗| 台江县| 北碚区| 石屏县| 三原县| 札达县| 石泉县| 定日县| 惠州市| 麻城市| 正阳县| 安乡县| 富裕县| 措勤县| 阜南县| 武邑县| 巫溪县| 莆田市| 洛浦县| 天长市| 大城县| 郧西县| 海原县| 高雄市| 凌海市| 周口市| 南岸区| 略阳县| 岳普湖县| 浙江省| 周宁县| 化州市| 梁平县| 固始县| 安阳县| 新郑市| 保定市| 柯坪县| 彭州市|