假如你瀏覽MediaTracker API 文檔,你可能會注重到 Component 類定義了兩個看上去有用的方法: checkImage 和 PRepareImage。MediaTracker 類在很大程度上使得這些方法是不必要的。
用MemoryImageSource創(chuàng)建圖像 在像 MemoryImageSource 類這樣的圖像生產者的幫助下,你可以從你的幸手涂鴉上構造圖像。下面的代碼范例打算創(chuàng)建一個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只繪制完整的圖像,那么你需要跟蹤圖像的加載。參考 上一頁獲取跟蹤圖像加載的信息。