「来源: |龙旋 ID:longxuanzhigu」效果如下:来简单分析一下,这种效果可以用viewpager的来实现,只要拿到:transformPage(@NonNull View view, float position)通过 position 来控制显示的位置即可。view 为当前的可视部分,po
2021-05-30 10:30:35
「來源: |龍旋 ID:longxuanzhigu」
效果如下:
來簡單分析一下,這種效果可以用viewpager的來實現,只要拿到:
transformPage(@NonNull View view, float position)
通過 position 來控制顯示的位置即可。
view 為當前的可視部分,position 則為滑動狀態的值,有 -1,0,1 三種模式。0 表示的是最頂端的檢視,-1 則表示左邊的view,1則表示右邊的view,具體如下:
如果我們要讓它像效果圖那樣疊加,則可以通過這個改變 x 的座標,初步程式碼如下:
@Override public void transformPage(@NonNull View view, float position) { view.setAlpha(0.4f); view.setTranslationX(-view.getWidth() * position); }
接著分析,為了讓它有縮放和向下偏移的效果,需要對後面的view進行縮放和向下移,所以程式碼改為:
@Overridepublic void transformPage(@NonNull View view, float position) { view.setTranslationX(-view.getWidth() * position); float scale = (view.getWidth() - mCardHeight * position) / view.getWidth(); view.setScaleX(scale); view.setScaleY(scale); view.setClickable(false); view.setTranslationY(mCardHeight * position);}
mCardHeight 表示一個簡單數值,我這裡用 20 表示,然後再把viewpager 的快取設定為3,這裡疊加效果才更明顯;
接著,發現無法移動,當然了,因為所有的veiw都被設定了,需要對當前view進行特殊處理,最終程式碼如下:
public class CardTransformer implements ViewPager.PageTransformer { private float mCardHeight = 10; public CardTransformer(float cardheight) { this.mCardHeight = cardheight; } @Override public void transformPage(@NonNull View view, float position) { if (position <= 0){ view.setTranslationX(0f); view.setClickable(true); }else { view.setTranslationX(-view.getWidth() * position); float scale = (view.getWidth() - mCardHeight * position) / view.getWidth(); view.setScaleX(scale); view.setScaleY(scale); view.setClickable(false); view.setTranslationY(mCardHeight * position); } }}
然後把它設定給 viewpager 的 pageTransformer 即可。
當然,我這裡已經封裝好了一個 Viewpager 的工具類,看具體源碼。
源碼地址:
https://github.com/LillteZheng/ViewPagerHelper
到這裡就結束啦。
相關文章
「来源: |龙旋 ID:longxuanzhigu」效果如下:来简单分析一下,这种效果可以用viewpager的来实现,只要拿到:transformPage(@NonNull View view, float position)通过 position 来控制显示的位置即可。view 为当前的可视部分,po
2021-05-30 10:30:35
过去两年,华为因美国制裁措施,令公司新手机不能採用<em>Android</em>作业系统,加上无法採购晶片,令公司的手机业务兵败如山倒。时至六月,还没发布上半年P系列旗舰手机,但似乎有新局面。华为刚宣布会在下星期三(6月2日)正式发
2021-05-30 10:30:34
2.3.6.5 导入<em>Excel</em>题目信息 题目添加画面,点击下载模板按纽,下载题目批量录入<em>Excel</em>模板。 在模板中,输入题目名称,选择题库级别、题库类别、试题类型,正确答案,答案内容等信息并保存。 在画面中选
2021-05-30 10:30:03
对于一款国产智能手机而言,芯片是必不可少的。笔者看了Redmi Note 10发布会的录像回放后,先听了Redmi产品经理卢伟冰先向我们阐述了手机行业整体的确存在较明显的缺芯片现象。相信一定有人会问为什么iPhone 12手机没遇
2021-05-30 10:00:22
我的m2硬盘新买来时有安装好win10,但中毒懒着重装系统,于是拿win7升级win10的<em>ssd</em>硬盘先做出备份映像,然后还原到m2上,可以用。但有一天我想在m2重装win10,就发生无法安装win10的问题,我另一颗还原过升级版win10的<
2021-05-30 09:31:19
假挖矿就是币在项目方手里,他根据自己的意愿来分发矿机,例如玩个游戏就可以产币,走路就能挖矿等。Filecoin挖矿方式就是用<em>CPU</em>或GPU加硬盘加带宽,它是一个服务器的挖矿方式。三、Filecoin技术特点 (1)IPFS与Filecoi
2021-05-30 09:30:50