熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java實現多種幻燈片切換特效(附源碼)

2022-06-13   來源: Java核心技術 

  功能說明 代碼實現了多種幻燈片變換特效淡入淡出緩慢覆蓋旋轉覆蓋等多種變換效果

  功能實現

  圖片加載類ImageLoader實現

  )用阻塞隊列存儲要圖片BlockingQueue images = new ArrayBlockingQueue<>(

  )用圖片eof表示圖片隊列結束Image eof = new WritableImage(

  )循環讀取指定圖片由於是阻塞隊列所以當隊列滿的時候線程會自動阻塞

  public void run() {

  int id = ;

  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 (!imageisError()) {

  imagesput(image)

  }

  }

  id++;

  if (id >= resourceslength) {

  id = ;

  }

  }

  } catch (Exception e) {

  } finally {

  if (!cancelled) {

  try {

  imagesput(eof)

  } catch (InterruptedException e) {

  }

  }

  }

  }

  特效實現 以弧形切換圖片為例 首先定義LengthTransition變化特效設置變化時間以及弧度數跟時間的變化關系

  class LengthTransition extends Transition {

  Arc arc;

  public LengthTransition(Duration d Arc arc) {

  thisarc = arc;

  setCycleDuration(d)

  }

  @Override

  protected void interpolate(double d) {

  arcsetLength(d *

  }

  }

  然後設置圖片層疊效果

  groupsetBlendMode(BlendModeSRC_OVER)

  nextsetBlendMode(BlendModeSRC_ATOP)

  以及之前那張圖片的淡出特效

  FadeTransition ft = new FadeTransition(Durationseconds( mask

  最後同時執行這兩個特效

  ParallelTransition pt = new ParallelTransition(lt ft)

  效果圖

  Java核心技術免費提供,內容來源於互聯網,本文歸原作者所有。

  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.