QML实现酷炫的 Cover Flow 效果(PathView)
前言
在 QML 中的 PathView 来实现一个 Cover Flow 图片切换效果,非常酷炫,并且代码也非常精简,先来看看效果图
源代码
Rectangle {id:coverflowcolor:"black"property ListModel modelproperty int itemCount: 5PathView{id:pathViewmodel:coverflow.modeldelegate: Item {id:delegateItemwidth: 200height: 200z:PathView.iconZscale:PathView.iconScaleImage{id:imagesource: urlwidth: delegateItem.widthheight: delegateItem.height}ShaderEffect {anchors.top: image.bottomwidth: image.widthheight: image.height;anchors.left: image.leftproperty variant source: image;property size sourceSize: Qt.size(0.5 / image.width, 0.5 / image.height);fragmentShader:"varying highp vec2 qt_TexCoord0;uniform lowp sampler2D source;uniform lowp vec2 sourceSize;uniform lowp float qt_Opacity;void main() {lowp vec2 tc = qt_TexCoord0 * vec2(1, -1) + vec2(0, 1);lowp vec4 col = 0.25 * (texture2D(source, tc + sourceSize) + texture2D(source, tc- sourceSize)+ texture2D(source, tc + sourceSize * vec2(1, -1))+ texture2D(source, tc + sourceSize * vec2(-1, 1)));gl_FragColor = col * qt_Opacity * (1.0 - qt_TexCoord0.y) * 0.2;}"}transform: Rotation{origin.x:image.width/2.0origin.y:image.height/2.0axis{x:0;y:1;z:0}angle: delegateItem.PathView.iconAngle}}path:coverFlowPathpathItemCount: coverflow.itemCountanchors.fill: parentpreferredHighlightBegin: 0.5preferredHighlightEnd: 0.5}Path{id:coverFlowPathstartX: 0startY: coverflow.height/3PathAttribute{name:"iconZ";value: 0}PathAttribute{name:"iconAngle";value: 70}PathAttribute{name:"iconScale";value: 0.6}PathLine{x:coverflow.width/2;y:coverflow.height/3}PathAttribute{name:"iconZ";value: 100}PathAttribute{name:"iconAngle";value: 0}PathAttribute{name:"iconScale";value: 1.0}PathLine{x:coverflow.width;y:coverflow.height/3}PathAttribute{name:"iconZ";value: 0}PathAttribute{name:"iconAngle";value: -70}PathAttribute{name:"iconScale";value: 0.6}PathPercent{value:1.0}}}
这里用ShaderEffect来实现图片的阴影倒影效果,之前的博客里面有介绍
Path中主要通过修改图片的 Z 值、缩放、以及旋转来改变图片属性达到我们想要的效果。
源码在这里,点击下载
本文参考http://www.qter.org/portal.php?mod=view&aid=20
QML实现酷炫的 Cover Flow 效果(PathView)相关推荐
- html5 coverflow,使用CSS+JS帮你实现苹果cover flow效果
原标题:使用CSS+JS帮你实现苹果cover flow效果 coverflow-demo222 <> ;(function(parent){ var cards = parent.que ...
- Win11新特性:在平板锁屏界面还有酷炫的3D视差效果
在深入挖掘 Windows 11 系统之后,用户再次发现了隐藏的 Windows 10 Mobile 保留功能.知名破解达人 ADeltaX 表示,如果你的设备有合适的硬件,Windows 11 将在 ...
- 纯CSS3写的10个不同的酷炫图片遮罩层效果
这个是纯CSS3实现的的10个不同的酷炫图片遮罩层效果,可以欣赏一下 在线预览 下载地址 实例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
- 纯CSS3写的10个不同的酷炫图片遮罩层效果【转】
这个是纯CSS3实现的的10个不同的酷炫图片遮罩层效果,可以欣赏一下 在线预览 下载地址 实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
- html动态显示字母,html5酷炫字母喷射动画效果
html5酷炫字母喷射动画效果,canvas绘制英文字母字符像喷泉喷水一样向上喷射动画特效. 查看演示 下载资源: 32 次 下载资源 下载积分: 10 积分 js代码 var Canvas = {} ...
- 【进阶版九宫格背景图片】如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?
如果你要有透明度效果的背景图请移步https://blog.csdn.net/qq_37860634/article/details/119591991 这是我们最终想要达到的效果,并且支持任意宽高缩 ...
- jQuery酷炫网格相片墙动画效果
相片墙的动画效果可以有很多种,加上3D效果甚至可以千变万化. 今天展示的是一个轻量级的简单示例,但是效果足够酷炫. 只使用jQuery.delay(),jQuery easing plugin和CSS ...
- 【HTML——酷炫烟花】(效果+代码)
效果展示 代码 下面即为全部源代码喔 ~ Html--酷炫烟花.html <!doctype html> <html lang="en"
- PS教程!手把手教你绘制3个效果酷炫的GIF动画效果
编者按:今天来一点简单好玩的动画教程,包括常见的Loading 动画.烟花动画和摩天轮旋转动画,操作不难,附有PS时间轴的入门手册,适合新人练习. 为了避免写僵尸教程,有些地方还是需要大家自行思考并且 ...
最新文章
- GNU make manual 翻译( 一百一十三)
- 直流无刷电机制动的三种方式
- HTML怎么限制每行字数,JS实现每行固定字数,自动换行
- 图论算法(一)--最短路径的DFS/BFS解法(JAVA )
- eclipse新建Android项目
- 二进制,八进制十进制十六进制之间数据转换
- Java 如何判定当前时间是否在某个范围
- 动态ip如何做域名解析
- Boot Device简介
- “Defaulting to user installation because normal site-packages is not writeable“
- python测试之道进阶_深入学习AB测试(一)-AB Testing With Python[项目实战]
- xbox one s驱动_【硬件资讯】次世代主机间最大差距?PS5 120Hz支持成难题,XBOX优势巨大!!...
- MVP的精益创业模式
- 我参加了资金盘培训,get了这些“知识点”
- ubuntu16.04安装rtems
- linux菜鸟基础学习(一)
- [宋史学习] 对西夏战争中暴露出的积弱形势 范仲淹
- 著名电子竞技游戏网站分析
- 最大公约数(二进制算法)
- 自然语言处理(二)——乔姆斯基4型文法