源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java多种幻灯片切换特效(经典)

  • 时间:2020-02-01 01:58 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java多种幻灯片切换特效(经典)
功能实现: 1、图片加载类ImageLoader实现: 1)用阻塞队列存储要图片:BlockingQueue images = new ArrayBlockingQueue<>(2); 2)用图片eof表示图片队列结束:Image eof = new WritableImage(1, 1); 3)循环读取指定图片,由于是阻塞队列,所以当队列满的时候线程会自动阻塞.
[u]复制代码[/u] 代码如下:
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变化特效:设置变化时间,以及弧度数跟时间的变化关系。
[u]复制代码[/u] 代码如下:
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);     } }
 然后设置图片层叠效果:
[u]复制代码[/u] 代码如下:
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);
 效果图: [img]http://files.jb51.net/file_images/article/201303/2013330130306440.jpg[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部