您当前位置:设计在线网 >> Sql Server >> 浏览文章

Java代码之多种幻灯片切换特效功能实现

分享到:
本文章讲述了Java代码之多种幻灯片切换特效功能实现.

 功

能说明: 代码实现了多种幻灯片变换特效. 如:淡入淡出、缓慢覆盖、旋转覆盖等10多种变换效果。

功能实现:

1、图片加载类ImageLoader实现:

1)用阻塞队列存储要图片:BlockingQueue images = new ArrayBlockingQueue<>(2);

2)用图片eof表示图片队列结束:Image eof = new WritableImage(1, 1);

3)循环读取指定图片,由于是阻塞队列,所以当队列满的时候线程会自动阻塞.

public void run() { int id = 0; try { while (true) { String path = resources[id]; InputStream is = getClass().getResourceAsStream(path); if (is != null) { Image image = new Image(is, width, height, true, true); if (!image.isError()) { images.put(image); } } id++; if (id >= resources.length) { id = 0; } } } catch (Exception e) { } finally { if (!cancelled) { try { images.put(eof); } catch (InterruptedException e) { } } } }

2、特效实现 以弧形切换图片为例: 首先定义LengthTransition变化特效:设置变化时间,以及弧度数跟时间的变化关系。

class LengthTransition extends Transition { Arc arc; public LengthTransition(Duration d, Arc arc) { this.arc = arc; setCycleDuration(d); } @Override protected void interpolate(double d) { arc.setLength(d * 360); } }

然后设置图片层叠效果: group.setBlendMode(BlendMode.SRC_OVER); next.setBlendMode(BlendMode.SRC_ATOP); 以及之前那张图片的淡出特效: FadeTransition ft = new FadeTransition(Duration.seconds(0.2), mask2); 最后同时执行这两个特效: ParallelTransition pt = new ParallelTransition(lt, ft); 效果图:

点击浏览下一页
推荐阅读:
看Amoeba如何实现mysql主从读写分离
有关MySQL的基本操作命令汇总
教你如何寻找适合的虚拟主机
上一篇:java中汉字转拼音的代码实现
下一篇:没有了

相关文章:

推荐文章  
赞助商链接  
热门排行  
主题推广  
中国设计在线网 All Rights Reserved. 互联网违法和不良信息举报
信息产业部备案号:湘ICP备09001063号