android 卡片投影渐变,受Duolingo启发的ViewPager卡片效果
如果你曾经使用过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卡片效果相关推荐
- Axie Infinity 是一个受神奇宝贝启发的宇宙,任何人都可以通过熟练的游戏玩法和对生态系统的贡献来赚取代币
Axie Infinity Axie Infinity 是一个受神奇宝贝启发的宇宙,任何人都可以通过熟练的游戏玩法和对生态系统的贡献来赚取代币.玩家可以为他们的宠物战斗.收集.饲养和建立一个陆地王国. ...
- BENDR for BCI : 多伦多大学研究者提出受BERT启发的深度神经网络学习海量EEG 数据...
从预测文本到智能语音控制,人机交互近年来得到了快速的发展.许多科学家设想下一个前沿领域是脑机接口(BCI),直接的神经连接,利用脑电图(EEG)信号捕捉到的脑电活动. 为了开发能够更好地利用公开的大量 ...
- 3页论文被引用17915次!88岁物理学泰斗温伯格去世,霍金《时间简史》受他启发...
杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 这周末,整个物理学界都在哀恸! 世界上最伟大物理学家之一,粒子物理集大成者--Steven Weinberg (史蒂芬·温伯格)去世,享年8 ...
- android view 渐变动画,Android自定义view渐变圆形动画
本文实例为大家分享了Android自定义view渐变圆形动画的具体代码,供大家参考,具体内容如下 直接上效果图 自定义属性 attrs.xml文件 创建一个类 ProgressRing继承自 view ...
- android手机连接windows,将Android手机投影到Windows 10 PC [夏昆冈]
Windows 10 预览版Build 14328加入了原生的Miracast投影功能,简单说,任意加入无线网络的Win10设备都可以成为一台无线显示器设备.这样一来,几乎所有Android手机和Wi ...
- android toolbar 颜色渐变,android – 如何使渐变形状留在CollapsingToolbarLayout标题后面...
我一直在玩 Chris Bane's Cheesesquare example application关于折叠工具栏布局,我在折叠工具栏上添加标题背后的渐变时,即使背景很亮,标题仍然可读. 该解决方案 ...
- 吴恩达创办Coursera是受他启发!74岁老父亲自述终身学习路,8年学完146门课程
大数据文摘出品 作者:牛婉杨.魏子敏 吴恩达这个名字你一定不陌生,他是当今人工智能和机器学习领域国际最权威的学者之一.作为斯坦福大学计算机科学系和电子工程系的副教授,以及在线教育平台Coursera的 ...
- 受壁虎启发,材料公司Felsuma研发一种能黏在任何材质表面的“壁虎皮肤”
目前,该公司已经在官网开始出售该"壁虎皮肤". 日前,材料公司Felsuma受壁虎启发,研发了一种命名为"壁虎皮肤(Geckskin)"的新材料,它几乎能够将任 ...
- android 背景 投影,智能投影新篇章,android与投影完美结合-神画Y1
原标题:智能投影新篇章,android与投影完美结合-神画Y1 相信很多朋友在工作或生活中都有使用投影仪的经验,想比显示器和电视,投影仪有着不占地方,显示尺寸巨大等等特点,以前还是主要以商务应用为主, ...
最新文章
- cpu计算机兼容,电脑升级之CPU篇:给CPU升级主要是兼容性问题,其他方法也用不上...
- Genymotion设置代理至BurpSuite和Charles
- 深度辨析 Python 的 eval() 与 exec()
- mysql innoback_innobackex工具备份mysql数据
- 浅谈当前电信检测宽带共享的机制
- 集成学习—Adaboost(论文研读)
- WDCP控制面板的常用liunx命令集
- Dijkstra算法详解:
- 爬取微博的数据时别人用的是FM.view方法传递html标签那么jsoup怎么解析呢
- HTC 一个基站老无法定位
- 风暴过后的小红书破圈解题,社区价值或被重估
- LTE中的SRB--承载
- uni-app 蓝牙通信
- spark整合hive
- 正则表达式(Regular Expression)——入门笔记(常用正则表达式符号、正则表达式在线调试工具)
- 想要改变世界的 Rust 语言
- 文字翻译器有哪些?文字翻译器哪个好?
- 与已安装应用签名不同
- 【专业扫盲】模拟集成电路的具体方向
- python下载文件进度图表_【python 】文件下载进度条(装逼利器)
热门文章
- 对图片进行剪切,保留原始比例
- Stochastic Weight Averaging
- 删除文件夹时,显示“错误0x80070091 文件夹不是空的”
- python自学之《21天学通Python》(2)
- 自己组装高档游戏型计算机表格,推荐高端笔记本配置表和完整的高配置计算机物理检查...
- 国家级专精特新小巨人企业是什么?
- linux命令指南之三
- java实现Stripe信用卡支付
- Dede文章标题及文章摘要长度修改_元曦血狼_新浪博客
- 微信小程序的家校通系统(家校联系)