2012-02-12 16 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