如果你使用过 Duolingo (多邻国免费学习英语), 那你很有可能看到过下面这种界面效果:

看起来相当的酷对不对? 鉴于效果不错并且使用场景很多,因此我决定开始仿照它做一个类似的 Sample

首先分析一下这个效果与普通的ViewPager的区别在于, 我们可以在一个页面中看到3个item,并且有两个是只能看到部分。众所周知,正常情况下的ViewPager只能看到一个item。而我一开始所做的就是先创建一个普通的 单卡片Layout(行话来讲就是ViewPager的Adapter中的每一个页面的布局), 显示效果如下:

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" />

1234567891011121314151617181920

以上最重要的代码就是 android:clipToPadding="false"这一行。

clipToPadding:

就是说控件的绘制区域是否在padding里面的,true的情况下如果你设置了padding那么绘制的区域就往里缩,假设内部有个属性设置了PaddingLeft但是滑动的时候就忽视paddingLeft。

在此基础上只要设置CardView的padding,即可实现在一页显示3个item的UI效果。 最后我们只需要动态的设置CardView的elevation animation即可

Shadow animation

To do this, I created a ShadowTransformer that implements OnPageChangeListener and PageTransformer listeners. When the user scrolls to the next card, it should get higher and the previous card should get lower.

This is done by using the method setCardElevation of the CardView with an appropriate factor that depends on the scroll offset. In this sample, the CardView base elevation is the default (2dp) and the card will elevate up to 16dp.

The end result:

为了实现shadow动画的效果, 我创建了一个 ShadowTransformer . 它实现了 OnPageChangeListener 和 PageTransformer 这两个接口。 当用户向下一个Card滑动时,在视觉效果上当前Page会高于两边的Page。 最终效果如下:

android quot;动画重叠quot;,自定义ViewPager实现仿 quot;多邻国quot; 的闪卡效果相关推荐

  1. Android显示九宫图(自定义圆角,仿微信九宫格图)

    详细解析Android显示九宫图(自定义圆角,仿微信九宫格图) 这是一个自定义九宫格图片框架,里面有设置圆角大小,还有当图片一张的时候控件自定义的大小,图片的间隔,四张图片的时候图片自定义为两行两列等 ...

  2. android 图片圆角 遮罩_Android 自定义View练手Demo(一)实现圆角遮罩效果

    Android 自定义View系列文章 Android自定义View实现圆角遮罩效果 一图胜千言,有一个遮罩就会凸显出重点区域 1-1.jpg 本文通过两种方式来实现这种效果,来达到自定义View练手 ...

  3. Android自定义控件之RecyclerView打造万能ViewPager TabLayout(仿今日头条Tab滑动、Tab多布局、indicator蠕动、自定义indicator、文字颜色渐变)

    文章目录 GitHub:https://github.com/AnJiaoDe/TabLayoutNiubility 该轮子特异功能如下: 使用方法 注意:该轮子适用于androidx中的ViewPa ...

  4. 自定义View之仿支付宝v9.9芝麻信用分仪表盘效果

    点击上方蓝字关注公众号 码个蛋第242次推文 因为信用,所以简单 作者:hotBitmapGG 博客:http://www.jianshu.com/u/566d6cec0ebc 文章目录 前言 截图 ...

  5. Android下雪动画 VS JS下雪动画

    Android下雪动画的实现 自定义View package com.shanjing.snowflake;import android.content.Context; import android ...

  6. 三行代码接入,社交软件打字时底下弹出的表情布局,自定义ViewPager+页面点标+各种功能的android小框架。...

    (转载请声明出处:http://www.cnblogs.com/linguanh/) 前言: 接上次分享的 ListView 动态加载类,入口:http://www.cnblogs.com/lingu ...

  7. android+属性动画+高度,android 自定义view+属性动画实现充电进度条

    近期项目中需要使用到一种类似手机电池充电进度的动画效果,以前没学属性动画的时候,是用图片+定时器的方式来完成的,最近一直在学习动画这一块,再加上复习一下自定义view的相关知识点,所以打算用属性动画和 ...

  8. Android m 自定义下拉菜单,Android实现动画效果的自定义下拉菜单功能

    我们在购物APP里面设置收货地址时,都会有让我们选择省份及城市的下拉菜单项.今天我将使用Android原生的 Spinner 控件来实现一个自定义的下拉菜单功能,并配上一个透明渐变动画效果. 要实现的 ...

  9. Android自定义ViewPager图片指示器,兼容实现底部横线指示器

    前言  记得以前自己使用过的ViewPager Indicator有JakeWharton大神的开源库ViewPagerIndicator,v4包自带的PagerTitleStrip以及Android ...

最新文章

  1. 【实战演练】两种方法让 Docker 帮您快速构建应用程序
  2. 基于jQuery的AJAX和JSON实现纯html数据模板
  3. 没有足够的权限删除OU
  4. AXI quad SPI没有输出
  5. javascript 表达式和运算符 (二)
  6. 五大板块(2)—— 指针
  7. 联系随笔2---在tomcat服务器上发布servlet应用程序
  8. 软考一般知识之数据库
  9. 不卖了?这家公司暂停门店销售iPhone!
  10. Spring MVC 的配置安装
  11. 自动运维化tools篇2:通过SSH信任关系,批量修改LINUX密码
  12. Python爬取王者荣耀手游中的游戏英雄角色
  13. 拳王公社:网络操盘手必备的400款新媒体运营工具大全!
  14. SpringCloud常用注解
  15. Mac m1芯片 安装 mosek python
  16. 周爱民-javascript
  17. 史上最详细的Pytorch版yolov3代码中文注释详解(四)
  18. javascript入门实例:实现简单网页功能
  19. w jius shui yix
  20. 毕业设计 LSTM的预测算法 - 股票预测 天气预测 房价预测

热门文章

  1. 电容器的基础知识(2)
  2. Canvas粒子交叉线条背景动态js特效
  3. 链改升级,区块链——炳德区块链
  4. 网易我的世界java进不去_网易我的世界端游怎么进不去
  5. python 用selenium获取好友空间说说及时间写入txt
  6. Ruby使用RabbitMQ(基础)
  7. TortoiseSVN安装最新版,设置中文;并修改比对工具为BeyondCompare
  8. 什么是游戏美术设计?3D游戏建模常用的软件有哪些
  9. 川师大计算机学院任教老师,全新启航,精彩蜕变——记四川师范大学计算机科学学院2019级新生开学典礼暨2019级新生学籍管理教育...
  10. 用Python的Pandas和Matplotlib绘制股票唐奇安通道,布林带通道和鳄鱼组线