zoukankan      html  css  js  c++  java
  • CollectionView垂直缩放卡片布局

    实现效果

    image

     

    实现思路

    从效果图可以看到变化是,越是往中间滚动的item显示最大,越显眼。而越是往前面,或者越是后面的,反而显示越小,这样就形成了视觉差。

    实现的思路就是通过重写在可见范围内的所有item的方法:

    通过这个API可以获取到原始属性,然后利用公式来计算缩放。

    难点

    如何计算缩放系数。这里实现的效果的公式如下:

    其中,widthForScale是最难把握的系数。

    如何计算widthForScale呢?方法是利用item的中心y与当前collectionview的contentOffset.y来计算:

    其中,offset这么计算出来的:

    最大的难点是distance的计算,如何拿捏呢?这需要慢慢分析。

    假设有三个item显示,那么第一个item的缩放要比第二个item(主显示的item)要小,然后第二个item的缩放要比第三个要大。

    第二个item(主)比第一个多了一个item,而第三个又比第二个多了一个item,所以再减去一个item的宽就可以了。

    核心代码

    系数0.15自由调整。

    结尾

    这里没有实现分页的特性,笔者还是尝试了的,不过因为一个item不是占满全屏,所以计算起来总是达不到笔者期望的效果。大家若能在笔者的基础上研究出来,请主动通知笔者,谢谢!

  • 相关阅读:
    webservice的两种客户端调用方式(总结)
    Maven笔记
    在myeclipse中建立webservice,发布webservice并且调用webservice接口
    1分钟内使用Adobe Dreamweaver CS5建立导航菜单
    Asp.Net Cookie的清除
    常用的sql标准建表语句
    Java5的 线程并发库
    使用NPOI操作Excel
    使用.net 内置的SmtpClient来实现邮件的发送
    qlikview 地图插件制作教程
  • 原文地址:https://www.cnblogs.com/jiayongqiang/p/5339648.html
Copyright © 2011-2022 走看看