QML实现酷炫的 Cover Flow 效果(PathView)
来源:互联网 发布:php 微信拍卖系统源码 编辑:程序博客网 时间:2024/04/28 00:24
前言
在 QML 中的 PathView 来实现一个 Cover Flow 图片切换效果,非常酷炫,并且代码也非常精简,先来看看效果图
源代码
Rectangle { id:coverflow color:"black" property ListModel model property int itemCount: 5 PathView{ id:pathView model:coverflow.model delegate: Item { id:delegateItem width: 200 height: 200 z:PathView.iconZ scale:PathView.iconScale Image{ id:image source: url width: delegateItem.width height: delegateItem.height } ShaderEffect { anchors.top: image.bottom width: image.width height: image.height; anchors.left: image.left property 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.0 origin.y:image.height/2.0 axis{x:0;y:1;z:0} angle: delegateItem.PathView.iconAngle } } path:coverFlowPath pathItemCount: coverflow.itemCount anchors.fill: parent preferredHighlightBegin: 0.5 preferredHighlightEnd: 0.5 } Path{ id:coverFlowPath startX: 0 startY: coverflow.height/3 PathAttribute{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
阅读全文
1 0
- QML实现酷炫的 Cover Flow 效果(PathView)
- OpenFlow library实现的cover flow效果
- QML PathView 效果
- 使用clayui实现具有动态切换效果的Cover Flow
- 【Android】实现Mac中的Cover Flow效果
- 如何实现QML中的pathview
- Unity的Cover flow的实现包(2个)
- IOS 实现图片Carousel效果---Cover Flow效果
- PathView实现炫酷SVG动画
- Cover Flow特效实现(1)
- Cover Flow特效实现(2)
- 基于QML Pathview的大型游戏英雄联盟-预览界面
- Cover flow基本原理及Tapku实现方法
- Cover flow基本原理及Tapku实现方法
- Cover flow基本原理及Tapku实现方法
- Cover flow基本原理及Tapku实现方法
- 在iOS上实现Cover Flow (一)
- 在iOS上实现Cover Flow (二)
- Linux学习笔记--文件共享
- 网站架构学习(三)之架构要素
- HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap
- HDU
- poj2312优先队列BFS
- QML实现酷炫的 Cover Flow 效果(PathView)
- 强制类型装换
- 判断一个物体是否从摄像机消失
- genymotion unknown generice error
- HashSet vs. TreeSet vs. LinkedHashSet
- IOS 设置按钮的的图片和标题位置
- Tomcat与Servlet入门
- Java中的equals()和hashCode()契约
- 欢迎使用CSDN-markdown编辑器