在java的使用过程中,我们会发现它的功能真的很强大,完成内容也极其丰富。今天就给大家介绍一下如何在java中实现幻灯片切换特效,以及通过实际的代码来为大家展示。

在最开始,需要说明的是,这个代码是实现淡入淡出、缓慢覆盖、旋转覆盖等10多种幻灯片的变换效果的。

它的功能实现主要包括以下方面:一、图片加载类ImageLoader实现:

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

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

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

具体代码如下: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)

{}

}

}

}

二、特效实现,以弧形切换图片为例:首先定义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中实现幻灯片切换特效的具体方法展示,以及通过实际的代码为大家详细地表现了出来。想要了解更多java经典例子和常见问题,敬请关注奇Q工具网。

推荐阅读:

java幻灯片效果_java中怎么实现幻灯片切换特效?详细实例展示相关推荐

  1. java获取文件大小_Java中获取文件大小的详解及实例代码

    Java 获取文件大小 今天写代码时需要实现获取文件大小的功能,目前有两种实现方法,一种是使用File的length()方法:另外一种是使用FileInputStream的available()方法, ...

  2. java utils类_Java中StringUtils工具类的一些用法实例

    StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 ...

  3. java arrays.aslist()_Java中Arrays.asList()方法详解及实例

    Arrays.asList() 是将数组作为列表. 问题来源于: public class Test { public static void main(String[] args) { int[] ...

  4. java幻灯片效果_Java实现多种幻灯片切换特效(附源码)

    Java实现多种幻灯片切换特效(附源码)以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 功能说明 代码实现了多种幻灯片变 ...

  5. html图片自动切换的幻灯片效果的,jQuery实现可自动切换的幻灯片效果插件代码...

    jQuery实现可自动切换的幻灯片效果插件代码 1. 用户快速划过按钮时不触发鼠标事件; 2. 鼠标划入当前图片按钮时不闪烁; 3. 简化并优化代码. 使用方法就不详述了, 请参见源码及相关注释 $. ...

  6. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  7. JAVA中希尔排序去的讲解_java 中基本算法之希尔排序的实例详解

    java 中基本算法之希尔排序的实例详解 希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该方法因DL.Shel ...

  8. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信

    你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...

  9. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

最新文章

  1. Timers cannot be stopped from another thread
  2. linux如何将json文件导入到mongo数据库
  3. __format__
  4. Linux iptables用法与NAT
  5. 小氓男-灰色按钮激活V1.0
  6. jsp人事管理系统_Jsp+Ssm+Mysql实现的医院人事管理系统源码附带视频运行教程
  7. RabbitMQ之五种消息模型
  8. php5.6 手册,php5.6手册下载
  9. 采用java编写一个软件,100以内的口算题【软件构造大作业】
  10. 练习:用swiper实现图片滑动
  11. html word页面展示,word文档怎样调页面
  12. _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv and _ZTIN10tensorflow8OpKernelE
  13. 华为云ModelArts文本分类–外卖评论(附详细图解)
  14. 微信微博聊天记录可作为证据 如何防止聊天记录被恶意利用?可以使用BTchat链语阅后即焚功能
  15. Oracle EBS 定义值集的段值与快码的公用查看
  16. Echarts3实例 加载地图
  17. 今年9月开学!香港科技大学(广州)人工智能专业已开始招生!
  18. java-php-python-医院挂号系统计算机毕业设计
  19. 量化新手初识H-M模型
  20. Java 中Map map = new HashMap()为什么不写成HashMap map = new HashMap()或者Map map = new Map()?

热门文章

  1. hadoop数仓建设之离线数据开发
  2. c语言如何一直循环scanf,C语言 scanf在while循环里的无限循环
  3. 《计算机体系结构》重要知识点
  4. 2021杭电多校补题(6)
  5. VEGAS Pro 16——视频编辑的新时代
  6. fabric2.3.2 test-network测试网络搭建 超详细步骤
  7. Spring三级缓存解决循环依赖问题详解
  8. 求一款简单高效的快递查询软件
  9. 如何使用深度学习自动识别限速标志?这里有一份Keras和TensorFlow教程
  10. 明明肚子就是不饿,就是总想着吃点东西,这是为什么?原因有3个