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;
}


}


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/laigb/archive/2009/03/24/4019144.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值