【Java开源代码栏目提醒】:网学会员在Java开源代码频道为大家收集整理了Color_Transparent_Canvas.java提供大家参考,希望对大家有所帮助!
package ch06;
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
public class Color_Transparent_Canvas
extends GameCanvas {
//获取当前绘制上下文
Graphics g = getGraphics();
//变量w和h为模拟器的当前屏幕宽度和高度
int w = getWidth();
int h = getHeight();
public Color_Transparent_Canvas() throws IOException {
//支持按键事件
super(false);
}
//启动绘制
public void start() {
render(g);
}
//实现具体绘制
void render(Graphics g) {
/*
3.装载图片
*/
try {
Image im = Image.createImage("/icons/background/boy01.png");
g.drawImage(im, 0, 0, Graphics.LEFT | Graphics.TOP);
}
catch (Exception e) {
System.out.println(e.toString());
}
//绘制区域坐标
int x = 0, y = 0;
//绘制区域宽度和高度
int width = w / 3, height = h / 3;
// 存储绘制区域绘制象素数据数组
int rgbData[] = new int[width * height];
/*
4.绘制不透明区域
*/
for (int i = 0; i < rgbData.length; i++) {
rgbData[i] = 0xffff0000;
}
g.drawRGB(rgbData, 0, width, x, y, width, height, false);
g.drawRect(x, y, width, height);
/*
5.绘制半透明区域
*/
x = w / 3;
y = h / 3;
for (int i = 0; i < rgbData.length; i++) {
rgbData[i] = 0x7fff0000;
}
g.drawRGB(rgbData, 0, width, x, y, width, height, true);
g.drawRect(x, y, width, height);
x = w - w / 3;
y = h - h / 3;
/*
6.绘制全透明区域
*/
for (int i = 0; i < rgbData.length; i++) {
rgbData[i] = 0x00ff0000;
}
g.drawRGB(rgbData, 0, width, x, y, width, height, true);
g.drawRect(x, y, width, height);
//刷新缓存,输出图像
flushGraphics();
}
}