Android RecyclerView 实现支付宝首页效果
Android RecyclerView 实现支付宝首页效果
虽然我本人不喜欢支付宝的,但是这个网格本身其实还是不错的,项目更新中更改了一个布局为网格模式,类似支付宝.(估计是产品抄袭的=.=,我不管设计,只管实现就好.)
RecyclerView的功能已经模块化了,如下所示:
类名 描述 RecyclerView.Adapter 托管数据集合,为每个Item创建视图 RecyclerView.ViewHolder 承载Item视图的子视图 RecyclerView.LayoutManager 负责Item视图的布局 RecyclerView.ItemDecoration 为每个Item视图添加子视图,在Demo中被用来绘制Divider RecyclerView.ItemAnimator 负责添加、删除数据时的动画效果 今天的重点是
RecyclerView.ItemDecoration毕竟是来定义分隔线的,那就开始画吧 =.=
首先是模拟数据
public List<GridTabEntity> getData() {
List<GridTabEntity> data=new ArrayList<GridTabEntity>();
TypedArray typedArray = getResources().obtainTypedArray(R.array.image_home_arr);//这里是图表
String[] nameStr=new String[]{
"提现",
"自助上单",
"商品管理",
"全民营销",
"消费统计",
"评价管理",
"经营管理"
};
for (int i = 0; i < nameStr.length; i++) {
data.add(new GridTabEntity(nameStr[i],false,0,typedArray.getResourceId(i,0)));
}
return data;
}
addItemDecoration 定制分隔线
mGridTab = ((RecyclerView) findViewById(R.id.re_grid));
mGridTab.setLayoutManager(new GridLayoutManager(this, 3, GridLayoutManager.VERTICAL, false));
//dp转px
final int offset = DisplayUtil.dp2px(this, 1.3f);
//这里是开始,定制分隔线
mGridTab.addItemDecoration(new RecyclerView.ItemDecoration() {
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView
.State state) {
super.getItemOffsets(outRect, view, parent, state);
int childLayoutPosition = parent.getChildLayoutPosition(view);
if (childLayoutPosition%3!=0){
outRect.right=offset/2;
outRect.bottom=offset/2;
}else {
outRect.left=offset/2;
outRect.right=offset/2;
outRect.bottom=offset/2;
}
}
@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
//始化一个Paint
Paint paint = new Paint();
// paint.setColor(Color.parseColor("#B8B8B8"));
paint.setColor(Color.parseColor("#D8D8D8"));
paint.setStrokeWidth(offset);
//获得RecyclerView中条目数量
int childCount = parent.getChildCount();
//遍历
for (int i = 0; i < childCount; i++) {
//获得子View,也就是一个条目的View,准备给他画上边框
View childView = parent.getChildAt(i);
//先获得子View的长宽,以及在屏幕上的位置
float x = childView.getX();
float y = childView.getY();
int width = childView.getWidth();
int height = childView.getHeight();
if (i % 3==2){
//h bottom
c.drawLine(x, y + height, x + width, y + height, paint);
continue;
}else {
c.drawLine(x + width, y, x + width, y + height, paint);
//h bottom
c.drawLine(x, y + height, x + width, y + height, paint);
continue;
}
// //根据这些点画条目的四周的线 h:水平 v:垂直
// //h top
// c.drawLine(x, y, x + width, y, paint);
// //v left
// c.drawLine(x, y, x, y + height, paint);
// //v right
// c.drawLine(x + width, y, x + width, y + height, paint);
// //h bottom
// c.drawLine(x, y + height, x + width, y + height, paint);
}
super.onDraw(c, parent, state);
}
});
GridTabAdapter mAdapter = new GridTabAdapter(data);
mGridTab.setAdapter(mAdapter);
好吧,不要打我,将就着点看,这只是个demo,所以代码很乱,注释是后来加的,应该能看懂吧.
画线的时候注意下,不是所以的"方块"都需要画上下左右的,例如中间的那个方块如果四个方向都画那么必定会有线叠加在一起,那样很难的.(>﹏<。)~
效果:
这是demo效果:
这是实际的效果:
Android RecyclerView 实现支付宝首页效果的更多相关文章
- iOS仿支付宝首页效果
代码地址如下:http://www.demodashi.com/demo/12776.html 首先看一下效果 状态栏红色是因为使用手机录屏的原因. 1.问题分析 1.导航栏A有两组控件,随着tabl ...
- Android -- RecyclerView实现顶部吸附效果
1,先来看一下今天实现的效果: 2,这次的效果是使用ItemDecoration来实践的,来看一看我们的实现吧 第一步:首先添加依赖,由于我们这些数据是请求网络的,所以一下我们添加网络框架依赖.Rec ...
- android支付宝首页、蚂蚁森林效果、视频背景、校园电台、载入收缩动画等源码
Android精选源码 android实现蚂蚁森林效果源码 android仿支付宝首页应用管理(拖拽排序,添加删除) android校园网络电台客户端源码 android实现按钮伸缩效果源码 一款仿i ...
- Android控件Gridview实现仿支付宝首页,Fragment底部按钮切换和登录圆形头像
此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能:Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局. 效果 ...
- android实现类似于支付宝余额快速闪动的效果
效果如下: 此图片不会动,但实际上是会快速跳动的. 之前看到有支付宝的效果非常牛逼.就是进去看到余额呼噜噜的直接上蹿下跳到具体数字,效果帅,但不知道怎么实现,最近终于知道了. 思路: 首先经常用 ...
- iOS仿支付宝首页的刷新布局效果
代码地址如下:http://www.demodashi.com/demo/12753.html XYAlipayRefreshDemo 运行效果 动画效果分析 1.UI需要变动,向上滑动的时候,顶部部 ...
- iOS支付宝 9.x 版本首页效果
http://www.jianshu.com/p/7516eb852cca 支付宝 9.x 版本首页效果 对于新版支付宝首页的产品功能这里就不说什么了,一大堆人吐槽,我们只想要一个好好的支付工具,阿里 ...
- Android 滑动定位+吸附悬停效果实现
在前两篇文章中,分别介绍了tablayout+scrollview 和 tablayout+recyclerview 实现的滑动定位的功能,文章链接: Android 实现锚点定位 Android t ...
- GooglePlay 首页效果----tab的揭示效果(Reveal Effect) (1)
GooglePlay 首页效果----tab的揭示效果(Reveal Effect) (1) 前言: 无意打开GooglePlay app来着,然后发现首页用了揭示效果,连起来用着感觉还不错. 不清楚 ...
随机推荐
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- C++中的变长参数
新参与的项目中,为了使用共享内存和自定义内存池,我们自己定义了MemNew函数,且在函数内部对于非pod类型自动执行构造函数.在需要的地方调用自定义的MemNew函数.这样就带来一个问题,使用stl的 ...
- 渗透测试工具BurpSuite做网站的安全测试(基础版)
渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...
- favicon.ioc使用以及注意事项
1.效果 2.使用引入方法 2.1 注意事项:(把图标命名为favicon.ico,并且放在根目录下,同时使用Link标签,多重保险) 浏览器默认使用根目录下的favicon.ico 图标(如果你并没 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- 【原创经验分享】WCF之消息队列
最近都在鼓捣这个WCF,因为看到说WCF比WebService功能要强大许多,另外也看了一些公司的招聘信息,貌似一些中.高级的程序员招聘,都有提及到WCF这一块,所以,自己也关心关心一下,虽然目前工作 ...
- css_02之盒模型、渐变
1.框模型:盒模型,①对象实际宽度=左右外边距+左右边框+左右内边距 + width:②对象实际高度=上下外边距+上下边框+上下内边距 + height: 2.外边距:margin:取值:①top(上 ...
- H3 BPM产品安装手册(.Net版本)
1 安装说明 1.1 服务器安装必备软件 在使用该工作流软件之前,有以下一些软件是必须安装: l IIS7.0以上版本(必须): l .Net Framework 4.5(必 ...
- 第12章 Linux系统管理
1. 进程管理 1.1 进程查看 (1)进程简介 进程是正在执行的一个程序或命令(如ls命令也是一个进程),每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. (2)进程管理的作用 ...
- maven常见异常以及解决方法
本文写的是我在整合ssm框架时遇到的一些问题,我估计很多人也会遇到,所以,这里作为一个总结,希望能够帮助大家解决问题 一,加入shiro组件时抛出的异常 加入步骤(略) 问题 1,保存后,无法导入sh ...

