如果你浏览MediaTracker API 文档,你可能会注意到
Component 类定义了两个看上去有用的方法: checkImage 和 prepareImage。MediaTracker
类在很大程度上使得这些方法是不必要的。
用MemoryImageSource创建图像 在像 MemoryImageSource
类这样的图像生产者的帮助下,你可以从你的幸手涂鸦上构造图像。下面的代码范例打算创建一个100x100的图像表示一个沿X轴的从黑到蓝的渐变和沿Y轴的从黑到红的渐变。
int w = 100; int h = 100; int[] pix = new int[w * h]; int index =
0; for (int y = 0; y < h; y++) { int red = (y * 255) / (h - 1); for
(int x = 0; x < w; x++) { int blue = (x * 255) / (w - 1); pix[index++]
= (255 << 24) | (red << 16) | blue; } } Image img =
createImage(new MemoryImageSource(w, h, pix, 0, w));
boolean drawImage(Image img, int x, int y, ImageObserver observer)
boolean drawImage(Image img, int x, int y, int width, int height,
ImageObserver observer) boolean drawImage(Image img, int x, int y, Color
bgcolor, ImageObserver observer) boolean drawImage(Image img, int x, int y,
int width, int height, Color bgcolor, ImageObserver observer) drawImage
方法有下面的参数: Image img 需要绘制的图像。 int x, int y 图像左上角坐标。 int
width, int height 图像的宽度和高度(单位为象素)。 Color bgcolor
图像下面的颜色。如果图像包含透明象素时这会有用,图像将在指定颜色背景下显示。 ImageObserver observer
一个实现ImageObserver 接口的对象。它将该对象登记为一个图像观察者,因此当图像的任何新信息可见时它被通知。大多组件可以简单的指定this。
组件可以指定this作为图像观察者的原因是Component 类实现了ImageObserver
接口。当图像数据被加载时它的实现调用repaint方法,这通常是你所期望的。 drawImage
方法只要要显示的图像数据已经加载完就返回。如果你要确保drawImage只绘制完整的图像,那么你需要跟踪图像的加载。参考 上一页获取跟踪图像加载的信息。[@more@]