【UI视觉】100行代码实现微信底部渐变切换效果!!!
来源:互联网 发布:iphone打电话变声软件 编辑:程序博客网 时间:2024/06/05 23:48
1、我们先来看一下要实现的效果
2、我们看到当进行切换页面的时候,关联的两个Tab将会产生过渡效果,接下来我们用最简单的代码去实现
3、思路:在Tab上放置一张为选中时的图片,再将已经选中的图片覆盖在未选中的图片上,我们来控制选中图片的透明度来实现渐变。
4、布局方面:这是单个Tab的布局,像这样的我们Demo一共有四个。大家注意id为page1的是默认图(灰色),id为page1_0的是选中的图片,也就是我们要控制渐变的视图
<RelativeLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" > <ImageView android:id="@+id/page1" android:layout_width="40dp" android:layout_height="40dp" android:layout_centerHorizontal="true" android:src="@drawable/aiw" /> <ImageView android:id="@+id/page1_0" android:layout_width="40dp" android:layout_height="40dp" android:layout_centerHorizontal="true" android:src="@drawable/aix" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/page1" android:layout_centerHorizontal="true" android:text="微信" /> </RelativeLayout>5、如何控制关联视图的渐变透明度呢,ViewPager的OnPageChangeListener提供了onPageScrolled的监听方法
@Overridepublic void onPageScrolled(int position, float offY, int offScreen) {}position:ViewPager当前所处位置、offY:偏移量范围0.0~1.0、offScreen:移动距离范围0-屏幕最大宽度。
我们利用offY来动态修改关联的Tab的渐变透明度,由于offY会随着左滑(从大到小1.0-》0.0)右滑(从小到大0.0-》1.0)进行动态改变,由此我们得到这样的逻辑:
if(arg0==0){//1->0||1->0ViewHelper.setAlpha(page1,1-offY);ViewHelper.setAlpha(page2,offY);}else if(arg0==1){//1->2||2->1ViewHelper.setAlpha(page2,1-offY);ViewHelper.setAlpha(page3,offY);}else if(arg0==2){//2->3||3->2ViewHelper.setAlpha(page3,1-offY);ViewHelper.setAlpha(page4,offY);}ViewHelper是为了兼容Android2.3而使用的Jar包。如果不兼容可以直接使用API.11 page1.setAlpha(1.0f);来实现。
至此,效果已经介绍完毕。
Demo下载地址:
点击打开链接
1 0
- 【UI视觉】100行代码实现微信底部渐变切换效果!!!
- 微信滑动底部菜单渐变效果
- 微信底部导航图标渐变效果
- 微信底部导航渐变效果-----viewpager&PorterDuffXfermode
- 实现微信tab颜色渐变效果
- 微信底部滑动时图标渐变色的实现
- Unity实现ui渐变效果
- 高仿微信6.0底部切换标签设置Alpha渐变效果解析
- 仿微信底部栏图标切换时,颜色渐变效果
- 自定义之类微信底部渐变栏
- 自定义View实现微信主页渐变效果
- weui+swiper 滑动底部导航栏切换 类似微信切换效果
- Android UI-实现底部切换标签(fragment)
- Android UI-实现底部切换标签(fragment)
- Android UI-实现底部切换标签(fragment)
- Android UI-实现底部切换标签(fragment)
- Android 实现类似微信页面底部导航效果
- 使用FragmentTabHost实现类似微信底部的效果
- Spring/Hibernate 应用性能优化的7种方法
- jquery中ajax执行总是跑到error函数中
- 利用指针的指针,修改被调函数的局部值【传引用】
- leetcode Problem12 Integer to Roman
- nginx+php(php-fpm)安装配置
- 【UI视觉】100行代码实现微信底部渐变切换效果!!!
- 【学习笔记】Android 替换dialog的旋转图片
- 网络编程(8)
- 如何诊断节点重启问题
- 解决 Eclipse 运行 app 报错: INSTALL_FAILED_NO_MATCHING_ABIS
- iOS定位原理和使用建议
- 多线程变成整理
- Oracle的翻页Sql语句
- Invariants, Preconditions and Postconditions不变条件,先验条件和后验条件