2012-02-12 14 views
1

我基本上希望能夠讓圖像隨着時間流逝而顯示出來(我有時間等的設置)我只是不知道如何將其設置爲逐像素顯示圖像,高度越來越高。也就是說,你從沒有顯示的圖像開始,然後隨着時間的增長,它顯示越來越多的圖像,(最後),最後顯示圖像。在Java中的淡入淡出過渡中創建一個圖像「加載」或「顯示」

這就像Java中的轉換。

我一直在亂搞它的歷史,搜索谷歌至少3個小時。哪兒也去不了,

這裏是我的圖片爲基礎:

BufferedImage img = null, img2 = null; 
try { 
    img = ImageIO.read(new File("9278.png")); 
    img2 = ImageIO.read(new File("9279.png")); 
} catch (IOException e) { 
    e.printStacktrace(); 
} 

g.drawImage(img, 0, 0, null); 
g.drawImage(img2, 0, 0, null); 

感謝

+0

1)將'e.printStackTrace()'放入catch中。 2)爲圖像觀察者使用'this'而不是'null'。 3)「淡化」是這個效應的錯誤術語。我不確定官方名稱是什麼,但Dervall會與'幕布效果'接近。 – 2012-02-12 10:27:27

回答

2

我假設你想要某種幕效果,像當加載圖像通過互聯網連接速度較慢。我會這樣來處理它:

你想使用Graphics2D對象的setClip方法。創建一個新的Rectangle您想要圖像被繪製的大小,並將其傳遞到圖形中的setClip。這將導致圖像的繪製僅在由矩形指定的區域內執行。

+0

感謝您的快速回復。我會查找它,有沒有任何文件可以將我連接到快速,這將幫助我manoeuvrer setClip在我的工作? – insidesin 2012-02-12 10:34:29

+0

查看['setClip(x,y,w,h)'](http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html#setClip%28int,%20int ,%20int,%20int%29)或['setClip(shape)'](http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html#setClip%28java.awt .Shape%29)。另外,它們是'Graphics'類的方法,它們也可用於(Graphics繼承)Graphics2D類。 – 2012-02-12 11:12:46

+0

上帝! 我不知道這是多麼容易!現在只是爲了在繪製塗料時增加高度。 – insidesin 2012-02-13 02:11:45

1

只要你想出頭不直接集成在擺動這不是一個簡單的問題,這裏的the example我以前做的一樣,

你可能需要去適應它,但它是你需要

什麼一個很好的例子
+0

我已經經歷了所有的衰落選擇,他們不是我認爲的方式。 – insidesin 2012-02-12 10:36:31

+0

這對我的工作,對它不好幫不了你。 – Kiwy 2012-02-12 11:31:22

+0

它的工作,我只是想它作爲一個窗簾褪色,而不是整體。 – insidesin 2012-02-13 02:08:22