如果你曾经使用过Duolingo,你很可能注意过这个部件:

看着很酷是吧?我对Duolingo团队是如何做到这个样子的很感兴趣,于是自己搭建了个项目来实现这种效果。

这与普通ViewPager的主要区别在于,你可以同时看到3个item,其中两个只能看到部分。

我做的第一件事就是创建拥有一个CardView的简单布局:

当adapter完成之后,在activity里设置好ViewPager:

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:fitsSystemWindows="true">

android:id="@+id/viewPager"

android:layout_width="match_parent"

android:layout_height="330dp"

android:layout_gravity="bottom"

android:clipToPadding="false"

android:overScrollMode="never"

android:paddingBottom="30dp"

android:paddingEnd="@dimen/card_padding"

android:paddingLeft="@dimen/card_padding"

android:paddingRight="@dimen/card_padding"

android:paddingStart="@dimen/card_padding" />

这里最重要的就是clipToPadding属性。当它为false时,ViewPager并不会剪掉我们想部分显示的View,而当前的item又能在中间。

通过改变card_padding,你能改变view的宽度。在这个例子中,我使用了60dp来得到类似Duolingo的效果。

当设置完这些之后,我们应该已经有了三个可见的item了,一个剧终,另外两个部分可见。现在我们只需要实现卡片的动画立体效果。

阴影动画

为此,我创建了一个实现了OnPageChangeListener 和 PageTransformer 的ShadowTransformer。当用户滑动到下一张卡片的时候,它应该变高,而前一张卡片则变低。

这是通过CardView的setCardElevation方法,根据scroll offset产生的恰当因素而实现的。在本例中,CardView的基准高度是默认的(2dp),而卡片可以上升到16dp。

最终效果:

android 卡片投影渐变,受Duolingo启发的ViewPager卡片效果相关推荐

  1. Axie Infinity 是一个受神奇宝贝启发的宇宙,任何人都可以通过熟练的游戏玩法和对生态系统的贡献来赚取代币

    Axie Infinity Axie Infinity 是一个受神奇宝贝启发的宇宙,任何人都可以通过熟练的游戏玩法和对生态系统的贡献来赚取代币.玩家可以为他们的宠物战斗.收集.饲养和建立一个陆地王国. ...

  2. BENDR for BCI : 多伦多大学研究者提出受BERT启发的深度神经网络学习​海量EEG 数据...

    从预测文本到智能语音控制,人机交互近年来得到了快速的发展.许多科学家设想下一个前沿领域是脑机接口(BCI),直接的神经连接,利用脑电图(EEG)信号捕捉到的脑电活动. 为了开发能够更好地利用公开的大量 ...

  3. 3页论文被引用17915次!88岁物理学泰斗温伯格去世,霍金《时间简史》受他启发...

    杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 这周末,整个物理学界都在哀恸! 世界上最伟大物理学家之一,粒子物理集大成者--Steven Weinberg (史蒂芬·温伯格)去世,享年8 ...

  4. android view 渐变动画,Android自定义view渐变圆形动画

    本文实例为大家分享了Android自定义view渐变圆形动画的具体代码,供大家参考,具体内容如下 直接上效果图 自定义属性 attrs.xml文件 创建一个类 ProgressRing继承自 view ...

  5. android手机连接windows,将Android手机投影到Windows 10 PC [夏昆冈]

    Windows 10 预览版Build 14328加入了原生的Miracast投影功能,简单说,任意加入无线网络的Win10设备都可以成为一台无线显示器设备.这样一来,几乎所有Android手机和Wi ...

  6. android toolbar 颜色渐变,android – 如何使渐变形状留在CollapsingToolbarLayout标题后面...

    我一直在玩 Chris Bane's Cheesesquare example application关于折叠工具栏布局,我在折叠工具栏上添加标题背后的渐变时,即使背景很亮,标题仍然可读. 该解决方案 ...

  7. 吴恩达创办Coursera是受他启发!74岁老父亲自述终身学习路,8年学完146门课程

    大数据文摘出品 作者:牛婉杨.魏子敏 吴恩达这个名字你一定不陌生,他是当今人工智能和机器学习领域国际最权威的学者之一.作为斯坦福大学计算机科学系和电子工程系的副教授,以及在线教育平台Coursera的 ...

  8. 受壁虎启发,材料公司Felsuma研发一种能黏在任何材质表面的“壁虎皮肤”

    目前,该公司已经在官网开始出售该"壁虎皮肤". 日前,材料公司Felsuma受壁虎启发,研发了一种命名为"壁虎皮肤(Geckskin)"的新材料,它几乎能够将任 ...

  9. android 背景 投影,智能投影新篇章,android与投影完美结合-神画Y1

    原标题:智能投影新篇章,android与投影完美结合-神画Y1 相信很多朋友在工作或生活中都有使用投影仪的经验,想比显示器和电视,投影仪有着不占地方,显示尺寸巨大等等特点,以前还是主要以商务应用为主, ...

最新文章

  1. cpu计算机兼容,电脑升级之CPU篇:给CPU升级主要是兼容性问题,其他方法也用不上...
  2. Genymotion设置代理至BurpSuite和Charles
  3. 深度辨析 Python 的 eval() 与 exec()
  4. mysql innoback_innobackex工具备份mysql数据
  5. 浅谈当前电信检测宽带共享的机制
  6. 集成学习—Adaboost(论文研读)
  7. WDCP控制面板的常用liunx命令集
  8. Dijkstra算法详解:
  9. 爬取微博的数据时别人用的是FM.view方法传递html标签那么jsoup怎么解析呢
  10. HTC 一个基站老无法定位
  11. 风暴过后的小红书破圈解题,社区价值或被重估
  12. LTE中的SRB--承载
  13. uni-app 蓝牙通信
  14. spark整合hive
  15. 正则表达式(Regular Expression)——入门笔记(常用正则表达式符号、正则表达式在线调试工具)
  16. 想要改变世界的 Rust 语言
  17. 文字翻译器有哪些?文字翻译器哪个好?
  18. 与已安装应用签名不同
  19. 【专业扫盲】模拟集成电路的具体方向
  20. python下载文件进度图表_【python 】文件下载进度条(装逼利器)

热门文章

  1. 对图片进行剪切,保留原始比例
  2. Stochastic Weight Averaging
  3. 删除文件夹时,显示“错误0x80070091 文件夹不是空的”
  4. python自学之《21天学通Python》(2)
  5. 自己组装高档游戏型计算机表格,推荐高端笔记本配置表和完整的高配置计算机物理检查...
  6. 国家级专精特新小巨人企业是什么?
  7. linux命令指南之三
  8. java实现Stripe信用卡支付
  9. Dede文章标题及文章摘要长度修改_元曦血狼_新浪博客
  10. 微信小程序的家校通系统(家校联系)