介绍

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

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

如果您是电子游戏迷,那么您肯定已经看过这种效果:将两张图像放在另一张图像上,背景移动得较慢,而前景(可能是玩家的头像移动得更快)。

这是视频游戏世界中经常使用的技巧。 它开始使用很久以前,例如《超级马里奥》电子游戏系列。

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

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

网站上的视差–来源: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

Java的新视差控件(JavaFX)相关推荐

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

    javafx 打印控件 介绍 视差是一种视觉效果,您可以组合以不同速度移动的两个分层图像以获得深度感. 想想一下,当您在道路上行驶时,您会看到附近的树木在快速移动,而距离较远的树木将沿同一方向移动但速 ...

  2. java界面日期选择控件,JavaFX界面设计之时间选择器(1)

    本章我们主要介绍javafX时间选择器的使用,描述了DatePicker控件的基本特性. javaFX的DatePicker控件可以让我们从一个给定的日历中选择一天,主要用于网站或应用中需要用户输入一 ...

  3. Windows Phone 8.1 新特性 - 控件之应用程序栏

    原文:Windows Phone 8.1 新特性 - 控件之应用程序栏 2014年4月3日的微软Build 2014 大会上,Windows Phone 8.1 正式发布.相较于Windows Pho ...

  4. 打造丝滑的滑动视差控件(ScrollParallaxView)

    1.前言 Wishing you peace, joy and happiness through the coming year. 提交祝贺大家新春快乐,狗年行大运. 2.正文 在年前跟大家分享一款 ...

  5. java浏览器fx,浏览器控件JxBrowser JavaFX开发快速入门指南

    要求:JDK 1.8及更高版本. 1.下载JxBrowser库 下载JxBrowser 将下载的归档文件解压到某个目录(例如D:\ Projects \ MyProject \)中. 当你解压缩档案时 ...

  6. java fx border_JavaFx UI控件与代码间的绑定方法

    JavaFx初探一,UI控件的使用,具体内容如下 方式一:使用纯代码直接new view控件,这样就不涉及到与fxml文件之间的交互了 方式二:使用fxml编写界面文件,用可视化工具scene bui ...

  7. Java SWT的Composite控件刷新

    今天重做公司java桌面程序的界面时,改成了使用FormLayout.RowLayout和FillLayout进行制作的自适应布局,结果做完发现有一部分需要变化的区域的内容无法显示,排查了下,发现需要 ...

  8. java 选择 颜色的控件_JavaFX颜色选择器(ColorPicker)

    颜色选择器控件允许用户从可用的颜色范围中选择颜色,或通过指定RGB或HSB组合设置其他颜色.JavaFX ColorPicker控件具有颜色选择器,调色板和自定义颜色对话框窗口. 创建ColorPic ...

  9. java文件上传控件_java实现大文件上传控件

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

最新文章

  1. Xcode中的NSLog详解
  2. 算法漫画:什么是 “哈夫曼树” ?
  3. python汽车行驶工况_什么叫车辆行驶工况
  4. 第三次作业:个人项目-小学四则运算 “软件”之初版
  5. Firefox扩展批量安装脚本
  6. 【JavaScript知识点五】javascript 流程语句
  7. android6.0加内存卡,Android 6.0 TF卡 手机扩容的新选择
  8. oracle练习(mldn视频)二
  9. 伍德里奇计量经济学导论pdf_伍德里奇 计量经济学导论 第三章第三节 2 OLS无偏定理...
  10. 1032. 字符流(每日一难phase2--days28)
  11. 关于解决The Operation Couldn't be Completed
  12. mysql数据库的超级管理员名称_MySQL数据库的超级管理员名称是______
  13. 【论文阅读|浅读】DeepEmLAN: Deep embedding learning for attributed networks
  14. 关于心理学书籍的一份书目
  15. p20 021 函数:我的地盘听我的
  16. 书籍_《未来世界的幸存者》阮一峰--2/5
  17. Rockstar Games遭黑客攻击,《侠盗猎车手6》90个开发视频外泄
  18. html鼠标悬停超链接(头像、文字)显示提示信息
  19. 苹果手机怎么把计算机放到桌面,iPhone怎么将电脑上的电影拖到手机上观看?
  20. 百度云的产品及使用场景分析

热门文章

  1. Mybatis生成器插件扩展,定制方法生成,list参数生成
  2. Java命令学习系列(四)——jstat
  3. JVM菜鸟进阶高手之路
  4. 2021 程序媛跳槽记:学习计划篇(已收获字节等offer)
  5. 如何从Gitee中拉取项目到HBuilder中?
  6. 《朝花夕拾》金句摘抄(四)
  7. java中input表单中的type=date返回类型【切记】
  8. springmvc中报错Request processing failed;
  9. mvc.net分页查询案例——PagedList
  10. MyBatisPlus(笔记)