Java实现多种幻灯片切换特效(附源码) 宏鹏教育java培训

时间:2013-04-05 栏目:java技术 阅读:0 作者:宏鹏教育鲁广北校区

  宏鹏教育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)

  效果图:

了解更多java培训技术请继续关注武汉宏鹏教育官网。学习热线:17740513250

专业老师指导

赵老师

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业

立即在线咨询

培训咨询客服

陈老师

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑

立即在线咨询

热门课程任你选,成长蜕变看的见

课程余量有限,即将截止报名!查看详情