北大青鸟光谷校区

北大青鸟光谷校区

  • 北大青鸟徐东校区
  • 北大青鸟光谷校区
  • 北大青鸟高新校区
  • 荆州青鸟之家
  • 襄阳青鸟之家

17740513250

百日千才

Java实现多种幻灯片切换特效(附源码) 北大青鸟java培训

发布日期:2023-03-31来源:武汉北大青鸟武汉校区作者:武汉宏鹏

  北大青鸟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

关闭

只为了方便您就学 北大青鸟光谷校区 北大青鸟武汉校区

武汉市洪山区珞喻路724号(地铁二号线光谷广场站F口出

Copyright (c) 2006-2023 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.