饶荣庆 -- 您今天UCWEB了吗?--http://www.ucweb.com

3G 手机开发网

   :: 首页 :: 联系 :: 聚合  :: 管理
  99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks
3G视线 -- 专注手机软件开发

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


对于自定义UI的设计,涉及到的工作量是很大的,有时候往往要实现一种UI效果而花费大量的时间去思考,找路子,然后实践,运气好的话,自然OK,运气不好,那就很惨了。浪费时间,还没有效果。
       不过还好有很多前辈总结出了一些方法跟代码,下面就让我们来看下,颜色渐变效果的实现吧。实践了这么,感觉就这个代码比较好,颜色渐变的比较平滑。很舒服。
        下面是效果图



下面是实现代码,大家可以参考下,也许还有更优化的设计呢。

下面代码也是从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数组,
     * 为了获取这个数据,而又跟CLDC1.0兼容,导致项目增加了一个Float类
     * 导致程序变大
     * @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;
    }



就两个静态方法很简单的。哈



爬虫工作室 -- 专业的手机软件开发工作室
3G视线 -- 专注手机软件开发
posted on 2007-09-13 11:15 3G工作室 阅读(1827) 评论(3)  编辑  收藏 所属分类: j2me

Feedback

# re: 颜色渐变选择条的实现 2007-09-13 11:34 千里冰封
哈哈,不错.在J2ME里面是挺难得的  回复  更多评论
  

# re: 颜色渐变选择条的实现 2007-09-13 20:15 BeanSoft
是呀, 很不错的了. 也可以套用到 Java 里面, 虽然有很多现成的画渐变的方法. 不过这种比较直接, 呵呵.  回复  更多评论
  

# re: 颜色渐变选择条的实现 2007-09-14 09:23 爬虫工作室
http://www.3geye.net更多精彩的实现,希望爱好J2me的朋友支持下  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: