`
zj360202
  • 浏览: 30204 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

J2ME 颜色渐变

    博客分类:
  • j2me
阅读更多
import javax.microedition.lcdui.Graphics;


public class CrystalRGB {

/**
  * 竖直方向的颜色渐变
  * @param g
  * @param color
  * @param x
  * @param y
  * @param width
  * @param height
  */
public final static void drawRGBVRect(Graphics g, int color, int x, int y,int width, int height)
{
  int[] rgb = getRGBVColor(color, height);
  for (int i = 0; i < width; i += 4) {
   int nTemp = x + width - (i - x);
   nTemp = nTemp > 4 ? 4 : nTemp;
   g.drawRGB(rgb, 0, 4, i, y, nTemp, height, true);
  }
}

/**
  * 竖直方向获取颜色渐变RGB数组,
  *
  * @param width
  * @return
  */
public final static int[] getRGBVColor(int color, int h)
{
  int[] rgb;
  int RGB_L = h;
  int nRgbData = RGB_L * 4;
  int a;
  rgb = new int[nRgbData];

  for (int i = 0; i < RGB_L; i++) {
   a = i;
   if (a > 255) {
    a = 255;
   }
   int col = color | (a << 24);
   rgb[i * 4] = col;
   rgb[i * 4 + 1] = col;
   rgb[i * 4 + 2] = col;
   rgb[i * 4 + 3] = col;
  }
  return rgb;
}

/*========================================================================*/
/**
  * 水平方向颜色渐变
  */
public final static void drawRGBSRect(Graphics g, int color, int x, int y,int width, int height) {
  int[] rgb = getRGBSColor(color, width);
  for (int by = y; by < y + height; by += 4) {

   int nTemp = y + height - (by - y);

   nTemp = nTemp > 4 ? 4 : nTemp;
   g.drawRGB(rgb, 0, width, x, by, width, nTemp, true);
  }

}

/**
  * 水平方向获取颜色渐变RGB数组,
  *
  * @param width
  * @return
  */
public final static int[] getRGBSColor(int color, int h) {
  int[] rgb;
  int RGB_L = h;
  int nRgbData = RGB_L * 4;
  rgb = new int[nRgbData];
  int alpha = -127;
  for (int i = 0; i < RGB_L; i++) {
   alpha = -127 + i;
   int col = color | (128 - alpha << 24);
   rgb[i] = col;
   rgb[i + RGB_L] = col;
   rgb[i + RGB_L * 2] = col;
   rgb[i + RGB_L * 3] = col;
  }
  return rgb;
}


}



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/laigb/archive/2009/03/24/4019144.aspx
分享到:
评论

相关推荐

    J2ME颜色渐变算法分析

    ### J2ME颜色渐变算法分析 在J2ME(Java 2 Micro Edition)平台下,颜色渐变处理是UI设计中的一个重要环节,用于提升界面的美观度与用户体验。本文将深入探讨两种颜色渐变算法的工作原理、优缺点以及应用场景。 ##...

    testgradient.rar实现颜色渐变的一个J2ME程序

    "testgradient.rar实现颜色渐变的一个J2ME程序"这个标题指出,我们关注的是一个Java Micro Edition (J2ME) 应用程序,它专门设计用于创建颜色渐变效果。J2ME是Java平台的一个子集,主要用于移动设备和嵌入式系统,...

    j2me里面各种漂亮进度条的制作方法

    例如,使用`Color`类的不同颜色组合,通过改变填充矩形的颜色来实现渐变效果。文字提示可以使用`drawString()`方法在适当位置显示当前进度的百分比。 3. **动画效果**:为了增加动态感,可以为进度条添加动画效果。...

    j2me 文字渐隐效果

    当a、b、c达到0或255时,它们会被限制在这个范围内,以保持颜色的渐变效果。 文字渐隐的效果是通过不断调整颜色的透明度来实现的,当颜色逐渐变为透明时,文字看起来就像逐渐消失。当`y`的值小于50时,颜色开始变亮...

    j2me手机泡泡龙游戏

    4. 界面动画:为了提高用户体验,可以添加平滑的动画效果,如泡泡下落的渐变速度、消除时的爆炸特效等。这些可以通过改变绘图时间和顺序实现。 四、优化与调试 在开发过程中,要注意优化代码以适应有限的移动设备...

    雷霆战机(简单飞机游戏J2ME源代码)

    3. **图形绘制**:J2ME中的`Graphics`类提供了基本的2D绘图功能,包括画线、画圆、填充颜色等。游戏中,飞机、子弹、敌人等元素都是通过`Graphics`类在屏幕上的Canvas组件上绘制的。 4. **碰撞检测**:游戏中的碰撞...

    J2ME图像处理与二维游戏

    常见的特效有模糊、光照、渐变、滤镜等,它们通过算法实现,能够使游戏更加生动有趣。 **二维游戏(例程)**是理论知识的实践,通过编写实际的游戏代码,学习如何将以上知识点整合到一个完整的游戏项目中。 课程...

    PNG制作帮手

    PNG(Portable Network Graphics)格式因其无损压缩、支持透明度和颜色深度等特点,在移动设备和网络应用中被广泛应用,尤其是在J2ME(Java 2 Micro Edition)平台上,PNG更是首选的图像格式。 首先,我们要理解为...

    俄罗斯方块java版

    1. 渲染:利用J2ME的Graphics对象,可以进行基本的图形绘制,如填充颜色、画线等。游戏面板类会定期调用repaint()方法,触发重绘过程。 2. 输入处理:监听键盘事件,根据用户按键调整方块的移动和旋转。 3. 方块旋转...

Global site tag (gtag.js) - Google Analytics