javafx 打印控件_Java的新视差控件(JavaFX)

javafx 打印控件

介绍

视差是一种视觉效果,您可以组合以不同速度移动的两个分层图像以获得深度感。

想想一下,当您在道路上行驶时,您会看到附近的树木在快速移动,而距离较远的树木将沿同一方向移动但速度较慢,结果是您感觉到树木在移动的速度更快与您和其他人更亲近。

如果您是视频游戏的狂热者,您肯定已经看过这种效果:将两张图像放在另一张图像上,背景移动速度较慢,而前景(可能是玩家的头像移动得更快)。

这是视频游戏世界中经常使用的技巧。 它在很早以前就开始使用,例如“超级马里奥”视频游戏系列。

超级马里奥游戏使用视差效果

此效果已在用户界面区域中采用,您可以在网站区域以及某些应用程序中看到该效果。

网站上的视差–来源:https://dribbble.com/shots/1378010–GIF-Parallax-Building-animation

我的目标是以控件的形式将其引入JavaFX,您可以在其中通过简单的API添加视差效果。

ListView中的视差

我的主要目标是将其带到ListView,即具有一个类似于ListView的API的控件,您可以像在JavaFX ListView中那样设置背景图像和项目列表。

实现ParallaxListView

若要产生视差效果,ListView中的项目(即单元格)需要以比背景图像更快的速率滚动。

这个新控件将使用具有透明背景的JavaFX ListView,该背景位于背景图像的前面。

第一个挑战是JavaFX ListView的滚动是通过跳转完成的,也就是说,当您执行滚动操作时,位置将从原始位置跳转到结束位置,而不会经过中间位置值。 这将破坏效果,因为没有像现实世界中那样的运动,只有一组离散的位置。 在现实世界中,前景中的对象通过翻译动画移动得更快,请记住,这是关于模仿现实世界中的现象(如我之前给出的驾驶示例),以提供深度感。

因此,要实现此目的,我必须实现自己的ListView滚动以及背景滚动,而背景滚动则通过一组位置设置动画。

ParallaxListView示例

从哪里获得

现在您可以在这里获取它: https : //github.com/dukke/parallax-list-view

我决定坚持使用JavaFX 8,因为Java 9仍然相对较新,并且有些人可能尚未迁移。 这样,Java 8和Java 9程序就可以使用它。

我使用的是私有API,即VirtualFlow,但是在JavaFX 9中已变成了公共API,因此可以轻松迁移ParallaxListView代码。

测试文件夹包含有关如何使用控件的示例。 您必须滚动鼠标滚轮才能看到效果。

结论和进一步发展

ParallaxListView可以给您的应用程序一个很好的联系,增加一些天赋,但是不要过度使用此效果。

在接下来的几天,我计划添加以下内容:

  • 添加对滚动条滚动的支持。
  • 添加API以更改背景图像相对于前景的高度
  • 添加指定ParallaxListView方向的功能:水平或垂直
  • 添加文档页面
  • 还提供了通用控件,可让您指定背景和任意可滚动的前景控件。

翻译自: https://www.javacodegeeks.com/2018/03/new-parallax-control-for-java-javafx.html

javafx 打印控件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

beoplay耳机序列号查询_BOSE耳机序列号如何查询?

展开全部 大多数序列号可在产品的背面或底部找到,一般位于条形码旁。e69da5e6ba903231313335323631343130323136353331333431363532序列号长度为 17 位(还有一些耳机是 4 位),可包含字母和数字。 另外,与 Bose Connect 应用程序兼容的产品将在应用程序的设置和gt; 产品信息下…

编译原理总概述笔记

编译原理编译原理程序设计语言分类翻译编译解释编译的转换过程两阶段的转换三阶段的转换编译程序的工作词法分析语法分析中间代码生成优化目标代码生成表格与表格管理出错处理语句翻译实例过程编写编译程序方式编译原理 是介绍高级程序设计语言变换成计算机硬件所能识别的机器…

RFC(一系列以编号排定的文件)

Request For Comments(RFC),是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。RFC文件是由Internet Society(ISOC)赞助发行。基本的互联网通信协议都有在RFC文件内…

deprecated_使用Java的@Deprecated前瞻

deprecated我偶尔会遇到一种情况,我需要引入新的API或构造以供其他人试用,但是我知道在使用某些API后,它可能会根据其他人的反馈而改变。 在这种情况下,我想以某种方式注释该构造,以警告其他开发人员此新添加的构造的暂…

fusionsphere的核心组件_FusionSphere架构详解

FusionSphere架构详解关键字:云计算XEN Hypervisor FusionSphere摘要:本技术案例主要针对Huawei FusionSphere云计算软件架构进行深入分析,总结概括出我们的FusionSphere云计算产品技术及课程内容中的关键点,为产品技术学习和云计…

将py文件打包成exe可执行文件

使用pyinstaller库即可将py文件打包成exe文件 安装pyinstaller库 pip install pyinstaller将py文件打包成exe文件 1.首先进入cmd,用cd命令定位到要打包的py文件所在的文件夹 2.使用以下命令打包py文件 pyintaller -F xxx.py #xxx.py就是要打包的文件之后会生成…

文件的 MD5 签名介绍

在 RFC1321 中有 MD5 的详细描述。简单的说,MD5 根据文件的内容用算法产生一个唯一的128位签名,用任何方法改变文件都会导致签名改变。尽管人们一直在讨论修改文件后能保持签名不变的理论可能性,但截止到目前还没有人能够做到。所以在文件使用…

apache.camel_Apache Camel 2.21发布–新增功能

apache.camel我们刚刚发布了Apache Camel 2.21,我将在此博客中重点介绍值得注意的更改。 此版本不支持Spring Boot2。对Spring Boot 2的支持将在Camel 2.22中提供, 我们计划在2018年夏季之前发布。 1)处理大型JMS消息 我们在JMS组件中添加了…

人生永无止境的意思是什么_励志人生:生活不会给任何脆弱鼓掌。

每一日你所付出的代价都比前一日高,因为你的生命又消短了一天,所以每一日你都要更积极。今天太宝贵,不应该为酸苦的忧虑和辛涩的悔恨所销蚀,抬起下巴,抓住今天,它不再回来。一个人失败的最大原因&#xff0…

精通 RPM 之校验篇_检验篇_检测篇

文章目录一、校验介绍二、参考示例(一)校验某个已安装的软件包的所有文件(一)校验系统中所有已安装的软件包(二)校验含有指定文件的软件包(三)校验指定类别的软件包(四&a…

python关于路径需使用的方法笔记

关于python中有关路径实现代码的方法常用的python方法join()方法split()方法关于文件路径\ / // \\的用法解释斜杠/反斜杠\读取某个路径的文件双斜杠//双反斜杠\\\os.path库的方法连接路径与路径或文件名获取绝对路径获取当前文件的绝对路径返回文件名字返回文件所在文件夹的路…

不同的Hibernate命名策略

本文讨论了hibernate提供的不同命名策略,以及命名策略从hibernate 4中的hibernate.ejb.naming_strategy到hibernate 5中的hibernate.implicit_naming_strategy和hibernate.physical_naming_strategy的转变。最后,我们将研究一下在Hibernate和配置中实施自…

设置按峰值带宽计费_西部数码使用指南:云服务器计费模式说明

版权归西部数码所有,原文链接:https://www.west.cn/faq/list.asp?unid2370一、付费模式1、包年包月先付费后使用模式,资源固定,按年或者按月付费购买可享受较大的价格优惠,帮您更大程度节省支出,并且时间固…

信号处理基本概念

信号处理 信号是传递信息的函数,也是独立变量的函数,这个变量可以是时间空间位置等。如图像的灰度值等就是空间位置的函数,声压随着时间在变化,就是时间的函数。 连续信号就是在某个时间区间,除有限间断点外所有瞬时…

如何理解计算机程序中的宏?

计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。 宏…

过滤器过滤特定的url_如何从过滤器中排除URL

过滤器过滤特定的url默认情况下,过滤器不支持排除特定的URL模式,每当您为过滤器定义URL模式时,任何与该模式匹配的请求都将由过滤器无例外处理。 从过滤器中排除URL的最简单方法是将过滤器映射到非常特定的模式。 在早期开发阶段完成此操作是…

计算机网络视频笔记

计算机网络计算机网络和互联网计算机网络(简称网络)internet(互连网)网络的组成网路边缘网络核心应用层传输层(运输层)网络层:数据链路层和局域网物理层网络安全无线和移动网络多媒体网络网络管理计算机网络和互联网 计算机网络(简称网络) 由若干结点和连接这些结…

一个dsp最小系统至少要有_DSP最小系统电路设计

DSP最小系统电路设计第1章绪论DSP有两种涵义,一种是Digital Signal Processing,指的是数字信号处理技术;一种是DigitalSignalProcessor,指的是数字信号处理器。两者是不可分割的,前者是理论上的技术,要通过…

g++默认字符集utf-8_Java可能使用UTF-8作为其默认字符集

g默认字符集utf-8由于基于Java的应用程序通常用于各种各样的操作系统和环境中,因此Java开发人员会遇到与基于字符的输入和输出有关的问题并不少见。 涉及这些问题的博客文章包括《警察的恐怖:默认语言环境,默认字符集和默认时区》 &#xff1…

Linux 的权限表达式

文章目录一、采用权限字母和操作符表达式(一)授权对象(二)权限字母符号二、采用权限数字表达式(一)权限数字(二)权限组合(三)命令 chmod 后面的数字含义一、采…