Android利用LayerDrawable实现各大App应用市场上选项卡切换效果
来源:互联网 发布:mac中取消隐藏文件 编辑:程序博客网 时间:2024/05/24 03:20
在应用市场下载App的时候经常会看到上面的选项卡切换,当然项目中遇到的时候,UI也可以切图,这种效果其实我们也可以自己手动实现的;使用LayerDrawable;
LayerDrawable是一种层次化的Drawable集合,通过不同的Drawable放在不同的层次上可以达到叠加的效果;
更多关于它的使用可以自己百度一下;
上面这总功能开发中也是很常见的,其实你要实现起来还是很麻烦的,不过使用LayerDrawable实现还是可以的;
它的实现思路是这样:
先分成三个部分 ,最左边,中间,右边,每一部分的状态分为选中和没选中,没选中的状态使用LayerDrawable来处理;底部是红色,上面盖上一层白色,留下1dp的红色间距;左右两边处理一下圆角;注意圆角的大小,处理圆角的时候,最底层Drawable圆角的corners值-它上面的Drawable圆角corners值=留出的间距,这样处理的效果是最好的,至于是为什么,这个我也不清楚,我是实践出来的效果;不信的话,可以自己动手试试;下面是xml,最下面有完整的代码下载;
左边的drawable文件:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="false"> <layer-list> <item> <shape android:shape="rectangle"> <solid android:color="@color/colorPrimary" /> <corners android:bottomLeftRadius="5dp" android:topLeftRadius="5dp" /> </shape> </item> <item android:bottom="1dp" android:left="1dp" android:right="0dp" android:top="1dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/white" /> <corners android:bottomLeftRadius="4dp" android:topLeftRadius="4dp" /> </shape> </item> </layer-list> </item> <item android:state_checked="true"> <shape android:shape="rectangle"> <solid android:color="@color/colorPrimary" /> <corners android:bottomLeftRadius="5dp" android:topLeftRadius="5dp" /> </shape> </item></selector>
中间的是这样:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="false"> <layer-list> <item> <shape android:shape="rectangle"> <solid android:color="@color/colorPrimary" /> </shape> </item> <item android:bottom="1dp" android:left="1dp" android:right="0dp" android:top="1dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/white" /> </shape> </item> </layer-list> </item> <item android:state_checked="true"> <shape android:shape="rectangle"> <solid android:color="@color/colorPrimary" /> </shape> </item></selector>
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="false"> <layer-list> <item> <shape android:shape="rectangle"> <solid android:color="@color/colorPrimary" /> <corners android:bottomRightRadius="5dp" android:topRightRadius="5dp" /> </shape> </item> <item android:bottom="1dp" android:left="1dp" android:right="1dp" android:top="1dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/white" /> <corners android:bottomRightRadius="4dp" android:topRightRadius="4dp" /> </shape> </item> </layer-list> </item> <item android:state_checked="true"> <shape android:shape="rectangle"> <solid android:color="@color/colorPrimary" /> <corners android:bottomRightRadius="5dp" android:topRightRadius="5dp" /> </shape> </item></selector>
完整代码下载 LayerDrawable使用Demo
阅读全文
0 0
- Android利用LayerDrawable实现各大App应用市场上选项卡切换效果
- 【Android】利用TabHost实现选项卡效果
- Android-LayerDrawable实现图片选中效果
- Android仿微信底部实现Tab选项卡切换效果
- JS实现选项卡切换效果
- Fragment实现底部选项卡切换效果
- javascript实现选项卡切换效果
- Table选项卡切换效果的实现
- 实现选项卡切换的效果
- js实现选项卡切换效果
- fragment实现选项卡切换效果
- 原生javascript实现选项卡切换效果
- 利用JavaScript实现选项卡切换
- 选项卡切换效果
- 【转】各大Android应用发布市场
- 选项卡(Tab)切换效果与关联事件处理实现
- jquery实现tab标签选项卡自动切换效果
- 自定义TabHost实现背景图片随选项卡切换滑动效果
- 部署及更新应用
- 17ACM Qingdao 1003 The Dominator of Strings
- LeetCode#5 Longest Palindromic Substring (week3)
- opencv3+opencv_contrib 安装ubuntu16.04
- 欢迎使用CSDN-markdown编辑器
- Android利用LayerDrawable实现各大App应用市场上选项卡切换效果
- Linux下 磁盘扩容的两种方式
- SVN常用的操作命令
- ng-class切换样式
- (网络层)IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)
- HDU 6134 Battlestation Operational-莫比乌斯
- C++中函数的数组形参
- Android应用内展示word、excel、pdf、ppt等文件
- 栈的基本操作(进栈,出栈)